55 votes

Version jquery de array.contains

Est-ce que jQuery peut tester un tableau pour la présence d'un objet (soit dans le cadre de la fonctionnalité de base, soit via un plugin disponible) ?

Aussi, je cherche quelque chose comme array.remove qui supprime un objet donné d'un tableau. Est-ce que jQuery peut gérer cela pour moi ?

91voto

Prestaul Points 31986

jQuery.inArray renvoie le premier index qui correspond à l'élément recherché ou -1 s'il n'est pas trouvé :

if($.inArray(valueToMatch, theArray) > -1) alert("it's in there");

Vous ne devriez pas avoir besoin d'un array.remove. Utilisez splice :

theArray.splice(startRemovingAtThisIndex, numberOfItemsToRemove);

Ou bien, vous pouvez effectuer une "suppression" à l'aide de la fonction jQuery.grep util :

var valueToRemove = 'someval';
theArray = $.grep(theArray, function(val) { return val != valueToRemove; });

3voto

Bryan Larsen Points 2630

Si votre liste contient une liste d'éléments, alors vous pouvez utiliser jQuery.not ou jQuery.filter pour faire votre "array.remove". (Réponse ajoutée en raison du score élevé de votre question originale sur Google).

0voto

Liutas Points 481

J'ai trouvé le moyen d'enlever l'objet :

foot = { bar : 'test'};
delete foot[bar];

0voto

user2013483 Points 1

Il ne s'agit pas de jQuery, mais en une ligne, vous pouvez ajouter une méthode pratique "contains" aux tableaux. Je trouve que cela aide à la lisibilité (surtout pour les utilisateurs de Python).

Array.prototype.contains = function(a){ return this.indexOf(a) != -1 }

exemple d'utilisation

 > var a = [1,2,3]
 > a.contains(1)
true
 > a.contains(4)
false

De même, pour enlever

Array.prototype.remove = function(a){if (this.contains(a)){ this.splice(this.indexOf(a),1)}; return this}

> var a = [1,2,3]
> a.remove(2)
[1,3]

Ou, si vous voulez qu'il retourne la chose supprimée plutôt que le tableau modifié, alors

Array.prototype.remove = function(a){if (this.contains(a)){ return this.splice(this.indexOf(a),1)}}

> var a = [1,2,3]
> a.remove(2)
[2]
> a
[1,3]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X