Tableau Javascript Épissure ne fonctionne Pas bien

var cache = [];
cache[0] = "0";
cache[1] = "1";
cache[2] = "2";
cache[3] = "3";
cache[4] = "4";
cache["r"] = "r";
console.log(cache.length);
for(key in cache){
    if(isNaN(key))continue;
    else cache.splice(key,1); //cache.splice(key) is working fine, ***
}
console.log(cache);

Question : en ligne *** Pourquoi splice(clé) fonctionne bien (Suppression de Tous les Éléments avec Index Numérique) et splice(clé 1) ne fonctionne pas bien (Pas de Suppression d'Éléments avec index Numérique). J'ai même essayé

splice(key,1) //Not working as splice(key)
splice(key--,1) //Even not working as splice(key)
splice(key,0) //not deleting any thing

Vous pouvez copier et coller le code dans la console de Firebug pour les tests.

  • Pouvez-vous préciser "pas de travail"? Ce qui se passe quand vous essayez de le code, et comment est-il différent de ce que vous attendez? Avez-vous un message d'erreur?
  • splice fonction supprimer l'élément de la matrice. Ses faut supprimer tout élément ayant un indice numérique, mais son retrait de quelques un
  • afin d'épissage attend de me donner un indice numérique, so (n,x) signifie démarrer à partir d'index numérique n et supprimer les valeurs de x après l'indice n. si n n'est pas numérique, mais alors pas nécessaire de x. De sorte qu'il fonctionne bien x est supprimé.
  • Non, il ne fonctionne pas sans un index. Si vous ne spécifiez un paramètre, qui est utilisé comme indice, et il va supprimer tous les éléments à la fin du tableau. Si vous utilisez la méthode avec une clé au lieu d'un indice et il semble fonctionner, c'est juste une coïncidence, car les valeurs que vous avez utilisé qui est arrivé à donner le même résultat.
InformationsquelleAutor Wasim A. | 2013-07-02