Supprimer l'élément de tableau basé sur la propriété de l'objet
J'ai un tableau d'objets comme:
var myArray = [
{field: 'id', operator: 'eq', value: id},
{field: 'cStatus', operator: 'eq', value: cStatus},
{field: 'money', operator: 'eq', value: money}
];
Comment puis-je supprimer une spécifique basé sur sa propriété?
par exemple, Comment faire pour supprimer l'objet de tableau avec de "l'argent" comme le domaine de la propriété?
Vous devez vous connecter pour publier un commentaire.
Qu'une seule possibilité:
Veuillez noter que
filter
crée un nouveau tableau. Toutes les autres variables se référant au tableau d'origine ne serait pas obtenir les données filtrées bien que vous mettez à jour votre variable d'originemyArray
avec la nouvelle référence. À utiliser avec prudence.filter()
est uniquement disponible pour Internet Explorer 9+filter()
crée un nouveau tableau, qui est très 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 ont des références. Cela ne fonctionnera pas si vous avez spécifiquement besoin de modifier le tableau d'origine de l'objet.Parcourir le tableau, et
épissure
ceux que vous ne voulez pas. Pour une utilisation plus facile, itérer vers l'arrière de sorte que vous n'avez pas à tenir compte de la nature vivante de la matrice:splice
modifications de la matrice.Dites que vous voulez supprimer le deuxième objet, de par leur propriété de champ.
Avec ES6 c'est aussi simple que cela.
Vous pouvez utiliser lodash de findIndex pour obtenir l'index de l'élément spécifique et ensuite enchaîné avec elle.
Mise à jour
Vous pouvez également utiliser ES6 du findIndex()
myArray
ici est un tableau d'objets.Voici une autre option à l'aide de jQuery grep. Passer
true
en tant que troisième paramètre pour assurer grep supprime les éléments qui correspondent à votre fonction.Si vous êtes déjà à l'aide de jQuery, pas de cale est nécessaire, ce qui est peut être utile, par opposition à l'aide de
Array.filter
.Voici le code si vous n'êtes pas à l'aide de jQuery. Démo
Vous pouvez également utiliser le trait de soulignement de la bibliothèque qui ont beaucoup de fonction.
Trait de soulignement est un utilitaire ceinture bibliothèque JavaScript qui fournit une grande partie de la programmation fonctionnelle soutien
Élément est un objet dans le tableau.
3e paramètre
true
signifie retournera un tableau des éléments qui ne parvient pas votre fonction logique,false
signifie retournera un tableau des éléments qui ne parvient pas votre fonction logique.À l'aide de la lodash bibliothèque:
JS:
HTML:
jAndy la solution est probablement la meilleure, mais si vous ne pouvez pas compter sur le filtre que vous pourriez faire quelque chose comme:
Basé sur certains des commentaires ci-dessus ci-dessous est le code comment faire pour supprimer un objet en fonction du nom de la clé et de la valeur de la clé de