J'ai un tableau comme treeids = ['a','b','c','d']; Je veux supprimer l'élément «b». En utilisant index, nous pouvons le faire, mais je le veux sans utiliser d'index, car ces valeurs sont dynamiquement incluses dans ce tableau. Retirez simplement avec le nom. Il devrait prendre en charge le navigateur IE7. Comment faire ça.

Merci

0
Mihir 9 déc. 2011 à 09:16

3 réponses

Meilleure réponse

JavaScript 1.6 fournit des Array.filter, qui conviendraient à vos besoins. sur.

Bien sûr, comme vous pouvez le voir dans le tableau de support du navigateur en bas, si vous devez prendre en charge IE plus ancien qu'IE 9, vous n'avez pas de chance.

JQuery fournit jQuery.grep qui fait la même chose, mais introduit les frais généraux d'une bibliothèque distincte.

Underscore.js a _.filter, mais encore une fois, cela utiliserait une bibliothèque distincte pour seulement un seul but.

3
nikc.org 9 déc. 2011 à 05:20

Essayez ce qui suit:

treeids.splice(treeids.indexOf('b'), 1);

Maintenant, les arborescences contiendront le reste ... Ici 'b' était l'élément à supprimer. L'argument de indexOf peut provenir d'une variable. De plus, vous devez vérifier l'erreur: l'index ne doit pas être -1.

2
deostroll 9 déc. 2011 à 05:22

Cela supprime tous les «b»:

Array.prototype.remove= function(item){
    var L= this.length, indexed;
    while(L){
        indexed= this[--L];
        if(indexed=== itm) this.splice(L, 1);
    }
    return this;
}

Épissure est disponible dans IE7 (et 6). Il supprime le nombre d'éléments transmis dans le deuxième argument, en commençant à l'index spécifié par le premier.

0
kennebec 9 déc. 2011 à 05:35
8441376