web-dev-qa-db-fra.com

Comment désélectionner un élément d'un tableau en javascript?

Comment puis-je supprimer la clé 'bar' d'un tableau foo afin que 'bar' n'apparaisse pas dans

for(key in foo){alert(key);}
121
Steven Noble

N'utilisez pas delete car il ne supprimera pas un élément d'un tableau, il le définira uniquement comme étant non défini, ce qui ne sera alors pas reflété correctement dans la longueur du tableau.

Si vous connaissez la clé, vous devez utiliser splice i.e.

myArray.splice(key, 1);

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

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

ou

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

:RÉ

48
nlaq

Remarque importante: les tableaux JavaScript ne sont pas des tableaux associatifs comme ceux auxquels vous pourriez être habitué depuis PHP. Si votre "clé de tableau" est une chaîne, vous n'utilisez plus le contenu d'un tableau. Votre tableau est un objet et vous utilisez la notation entre crochets pour accéder au membre nommé <nom de la clé>. Ainsi:

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

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

36
John Factorial

Si vous connaissez le nom de la clé, procédez comme suit:

delete array['key_name']
29
user3177525

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;
}
1
ling

Voici comment je le ferais

 myArray.splice( myArray.indexOf('bar') , 1) 
0
stackoverflows