2010-08-27 9 views
2
var arr = [-3, -34, 1, 32, -100]; 

Comment puis-je supprimer tous les éléments et laisser un tableau vide?Comment vider une matrice javascript?

Et est-ce une bonne idée de l'utiliser?

arr = []; 

Merci beaucoup!

+4

Vous avez répondu à votre propre question, au moins la première! – Stephen

+0

duplication possible de [Comment vider un tableau en JavaScript?] (Http://stackoverflow.com/questions/1232040/how-to-empty-an-array-in-javascript) –

+0

Copie possible de [Comment puis-je vider? un tableau en JavaScript?] (https://stackoverflow.com/questions/1232040/how-do-i-empty-an-array-in-javascript) –

Répondre

2

un de ces deux:

var a = Array(); 
var a = []; 
+0

arr = [] est recommandé car il prend moins de place (code sage). – Zoidberg

+1

Et c'est plus sexy. – Stephen

+1

@Stephen: '[]' vous allume? – BoltClock

0

En utilisant arr = []; pour vider le tableau est beaucoup plus efficace que de faire quelque chose comme une boucle et MHS chaque touche, ou MHS puis recréer l'objet.

0

Alors que vous pouvez le mettre à un nouveau tableau comme certains des autres réponses, je préfère utiliser la méthode claire() en tant que tel:

array.clear(); 
16

S'il n'y a pas d'autres références à ce tableau, puis il suffit de créer un nouveau tableau vide au-dessus de l'ancien:

array = []; 

Si vous devez modifier un tableau existant — si, par exemple, il y a une référence à ce tableau stocké ailleurs:

var array1 = [-3, -34, 1, 32, -100]; 
var array2 = array1; 

// This. 
array1.length = 0; 

// Or this. 
while (array1.length > 0) { 
    array1.pop(); 
} 

// Now both are empty. 
assert(array2.length == 0); 
+0

Voici la réponse. J'ai écrit à peu près la même chose avant de repérer que John l'avait déjà fait. –

0

Sur idée de boîte:

while(arr.length) arr.pop(); 
+1

Fonctionne, mais est inutilement inefficace. 'arr.length = 0' sera plus rapide et plus facile à lire. –

+0

Avec une mauvaise performance hors de la boîte. –

2

la manière simple, facile et sûr de le faire est la suivante:

arr.length = 0; 

faire une nouvelle instance de tableau, redirige la référence à une autre nouvelle par exemple, mais n'a pas libéré l'ancien.

Questions connexes