Maison >interface Web >js tutoriel >Introduction détaillée à trois façons d'effacer des tableaux en JavaScript
Cet article présente principalement trois façons d'effacer des tableaux en JavaScript. A une très bonne valeur de référence. Jetons un coup d'oeil avec l'éditeur ci-dessous
Méthode 1, épissure
var ary = [1,2,3,4]; ary.splice(0,ary.length); console.log(ary); // 输出 [],空数组,即被清空了
Méthode 2, la longueur est attribuée à 0
Cette méthode est très intéressante. Dans d'autres langages comme Java, la longueur du tableau est en lecture seule et ne peut pas être assignée. Par exemple,
int[] ary = {1,2,3,4}; ary.length = 0;
signalera une erreur en Java et ne parviendra pas à compiler.
En JS, c'est possible, et le tableau est effacé, comme
var ary = [1,2,3,4]; ary.length = 0; console.log(ary); // 输出 [],空数组,即被清空了
Actuellement, la méthode clear des tableaux dans Prototype et la méthode vide des tableaux dans la bibliothèque mootools utilisent cette méthode pour effacer les tableaux.
Méthode 3, attribuez la valeur à []
var ary = [1,2,3,4]; ary = []; // 赋值为一个空数组以达到清空原数组
La méthode clear de la classe Ext.CompositeElementLite de la bibliothèque Ext utilise cette méthode pour effacer.
La méthode 2 conserve les autres attributs du tableau, contrairement à la méthode 3.
Beaucoup de gens pensent que la méthode 2 est plus efficace car elle ne fait que réaffecter la longueur, tandis que la méthode 3 recrée un objet. Après test, c’est précisément la méthode 3 qui est la plus efficace. Code du test :
var a = []; for (var i=0; i< 1000000; i++){ a.push(i); } var start = new Date(); //a = []; a.length = 0; var end = new Date(); alert(end - start);
Résultat du test :
IE6 | IE7 | IE8 | IE9 | Firefox | Safari |
Chr
|
|||||||||||||||||||||||||
a.length=0 | 94 | 29 | 14 | 1 td> | 4 | 3 | 1 | ||||||||||||||||||||||||
a=[] | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Comme le montrent les résultats ci-dessus : la méthode 3 est plus rapide et plus efficace.
À en juger par les résultats des tests, la méthode utilisée par Ext est plus recommandée si d'autres attributs du tableau d'origine ne sont pas conservés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!