Comment supprimer la clé 'bar' d'un tableau foo pour que 'bar' n'apparaisse pas dans
for(key in foo){alert(key);}
Comment supprimer la clé 'bar' d'un tableau foo pour que 'bar' n'apparaisse pas dans
for(key in foo){alert(key);}
Réponses:
N'utilisez pas delete car il ne supprimera pas un élément d'un tableau, il le définira uniquement comme indéfini, ce qui ne sera alors pas reflété correctement dans la longueur du tableau.
Si vous connaissez la clé, vous devez utiliser splice ie
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);
}
}
for (var key in myArray)
place de for (key in myArray)
- sinon key
c'est une variable globale et si vous appelez une fonction à l'intérieur de cette boucle qui a le même problème, vous obtiendrez des résultats inattendus.
delete foo[key];
:RÉ
eval
. La suppression d'une clé / index d'un objet / tableau peut être réalisée par des méthodes beaucoup plus simples n'utilisant pas eval
.
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'opérez plus sur 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 clé>. Donc:
var myArray = []; myArray ["bar"] = vrai; myArray ["toto"] = vrai; alert (myArray.length); // renvoie 0.
parce que 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']
C'est comme ça que je le ferais
myArray.splice( myArray.indexOf('bar') , 1)
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;
}