Comment puis-je supprimer la clé 'bar' d'un tableau foo afin que 'bar' n'apparaisse pas dans
for(key in foo){alert(key);}
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);
}
}
delete foo[key];
:RÉ
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.
Si vous connaissez le nom de la clé, procédez comme suit:
delete array['key_name']
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;
}
Voici comment je le ferais
myArray.splice( myArray.indexOf('bar') , 1)