143 votes

supprimer l'élément de tableau d'objets en javascript

Dire que j'ai ce code

var arr = [{id:1,nom:'a'},{id:2,nom:'b'},{id:3,nom:'c'}];

et je veux supprimer l'élément avec id = 3 dans le tableau. Est-il un moyen de le faire sans l'épissage? Maye quelque chose à l'aide de soulignement ou quelque chose comme ça?

Merci!

287voto

Felix Kling Points 247451

La simple utilisation de JavaScript, ce qui a été déjà répondu: supprimer des objets de la matrice par la propriété de l'objet.

À l'aide de underscore.js, vous pouvez le combiner .findWhere avec .without:

arr = _.without(arr, _.findWhere(arr, {id: 3}));

Bien que, depuis que vous êtes à la création d'un nouveau tableau dans ce cas, de toute façon, vous pouvez simplement utiliser _.filter ou le natif Array.prototype.filter de la fonction (comme indiqué dans l'autre question). Ensuite, vous ne itération sur le tableau une fois au lieu de potentiellement deux fois, comme ici.

Si vous souhaitez modifier le tableau en place, vous devez utiliser .splice. C'est également montré dans la question et undescore ne semble pas fournir aucune fonction utile.

98voto

Sushanth -- Points 34703

Vous pouvez utiliser filter method offert par un trait de soulignement

var filtered = _.filter(arr, function(item) {
     return item.id !== 3
});

Vérifier Violon

Vous pouvez également utiliser reject

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