146 votes

Comment annuler un élément d'un tableau en javascript ?

Comment supprimer la clé 'bar' d'un tableau foo pour que 'bar' n'apparaisse plus dans

for(key in foo){alert(key);}

256voto

xiaohouzi79 Points 3165

N'utilisez pas supprimer car elle ne supprimera pas un élément d'un tableau, elle le mettra seulement à l'état indéfini, ce qui ne sera pas reflété correctement dans la longueur du tableau.

Si vous connaissez la clé, vous devez utiliser épissure c'est-à-dire

myArray.splice(key, 1);

Pour quelqu'un dans la position de Steven, vous pouvez essayer quelque chose comme ça :

for (var key in myArray) {
    if (key == 'bar') {
        myArray.splice(key, 1);
    }
}

o

for (var key in myArray) {
    if (myArray[key] == 'bar') {
        myArray.splice(key, 1);
    }
}

3 votes

+1 Bon point, j'aime aussi cette façon de faire : ejohn.org/blog/javascript-array-remove

3 votes

@ThiefMaster - Vous pouvez m'expliquer ? Je ne sais pas ce que cela signifie et j'ai envie d'apprendre. Comme toujours, une modification est 1 000 000 000 fois mieux qu'un commentaire désinvolte ; vous devriez le savoir avec le nombre de représentants que vous avez.

22 votes

Utilice for (var key in myArray) au lieu de for (key in myArray) - sinon key est une variable globale et si vous appelez une fonction dans cette boucle qui a le même problème, vous obtiendrez des résultats inattendus.

59voto

nlaq Points 11379
delete foo[key];

:D

5 votes

Techniquement, cela ne répond pas à la question. il cherche à supprimer la clé 'bar'. et votre variable clé ne l'implique pas. :P

4 votes

Key='bar' ; eval("delete foo. "+key) ; cache ;D

3 votes

Faites PAS utiliser eval . La suppression d'une clé ou d'un index d'un objet ou d'un tableau peut être réalisée par des méthodes beaucoup plus simples qui n'utilisent pas la fonction eval .

39voto

user3177525 Points 41

Si vous connaissez le nom de la clé, faites simplement comme ceci :

delete array['key_name']

2 votes

Ce n'est pas un tableau ! C'est un objet (oui, ces tableaux sont appelés tableaux associatifs en JS, mais non, ils ne le sont pas vraiment, et cette méthode est nuisible si vous travaillez vraiment avec un tableau JS).

38voto

John Factorial Points 244

Une note importante : les tableaux JavaScript ne sont pas des tableaux associatifs comme ceux auxquels vous êtes habitués en PHP. Si votre "clé de tableau" est une chaîne, vous n'opérez plus sur le contenu d'un tableau. Votre tableau est un objet, et vous utilisez la notation entre parenthèses pour accéder au membre nommé <nom de la clé>. Ainsi :

var myArray = \[\];
myArray\["bar"\] = true;
myArray\["foo"\] = true;
alert(myArray.length); // returns 0.

car vous n'avez pas ajouté d'éléments au tableau, vous avez seulement modifié les membres bar et foo de myArray.

1voto

ling Points 11

http://www.internetdoc.info/javascript-function/remove-key-from-array.htm

removeKey(arrayName,key);

function removeKey(arrayName,key)
{
 var x;
 var tmpArray = new Array();
 for(x in arrayName)
 {
  if(x!=key) { tmpArray[x] = arrayName[x]; }
 }
 return tmpArray;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X