J'ai un tableau d'objets comme ça:
var myArray = [
{field: 'id', operator: 'eq', value: id},
{field: 'cStatus', operator: 'eq', value: cStatus},
{field: 'money', operator: 'eq', value: money}
];
Comment en supprimer un en fonction de sa propriété?
Par exemple, comment supprimer l'objet tableau avec «argent» comme propriété de champ?
javascript
jquery
arrays
object
properties
imperium2335
la source
la source
filter()
n'est disponible que pour Internet Explorer 9+filter()
crée un nouveau tableau, ce qui est bien si vous êtes en mesure de réaffecter la variable et de savoir qu'il n'y a pas d'autres zones de code qui y font référence. Cela ne fonctionnera pas si vous devez spécifiquement modifier l'objet de tableau d'origine.Parcourez le tableau et
splice
sortez ceux que vous ne voulez pas. Pour une utilisation plus facile, itérez en arrière afin de ne pas avoir à prendre en compte la nature en direct du tableau:la source
Supposons que vous souhaitiez supprimer le deuxième objet par sa propriété de champ.
Avec ES6, c'est aussi simple que cela.
la source
splice
modifie le tableau d'origine, donc la valeur que vous récupérez est l'élément qui a été supprimé, mais si vous le regardez ensuite,myArray
l'élément sera manquant.Vous pouvez utiliser findIndex de lodash pour obtenir l'index de l'élément spécifique, puis l'épisser en l'utilisant.
Mettre à jour
Vous pouvez également utiliser findIndex () d' ES6
la source
myArray
voici un tableau d'objets.Voici une autre option utilisant jQuery grep. Passez
true
le troisième paramètre pour vous assurer que grep supprime les éléments qui correspondent à votre fonction.Si vous utilisez déjà jQuery, aucun shim n'est requis, ce qui pourrait être utile par opposition à l'utilisation
Array.filter
.la source
Dans ES6, une seule ligne.
:)
la source
Voici le code si vous n'utilisez pas jQuery. Démo
Vous pouvez également utiliser une bibliothèque de soulignements qui ont beaucoup de fonctions.
Underscore est une bibliothèque de ceinture utilitaire pour JavaScript qui fournit une grande partie du support de programmation fonctionnelle
la source
L'élément est un objet du tableau. Le troisième paramètre
true
signifie retournera un tableau d'éléments qui échoue à votre logique de fonction,false
signifie retournera un tableau d'éléments qui échouera à votre logique de fonction.la source
Sur la base de certains commentaires ci-dessus, le code explique comment supprimer un objet en fonction d'un nom de clé et d'une valeur de clé
la source
Utilisation de la bibliothèque lodash :
la source
La solution de jAndy est probablement la meilleure, mais si vous ne pouvez pas vous fier au filtre, vous pouvez faire quelque chose comme:
la source
En utilisant la bibliothèque lodash, c'est aussi simple que cela
la source