125 votes

Suppression d’objets dupliqués par trait de soulignement pour Javascript

J’ai ce genre de tableau :

Je souhaite filtrer qu’il ait :

J’ai essayé d’utiliser _.uniq, mais je suppose que parce que {« a » : « 1 »} est pas égale à elle-même, elle ne fonctionne pas. Est-il possible de fournir le soulignement uniq avec une fonction surchargée d’égal à ?

233voto

Shanimal Points 4067

.uniq/.unique accepte un rappel

var list = [{a:1,b:5},{a:1,c:5},{a:2},{a:3},{a:4},{a:3},{a:2}];

var uniqueList = _.uniq(list, function(item, key, a) { 
    return item.a;
});

// uniqueList = [Object {a=1, b=5}, Object {a=2}, Object {a=3}, Object {a=4}]

Notes:

  1. Rappel de la valeur de retour est utilisé pour la comparaison
  2. Premier objet comparaison avec l'unique valeur de retour unique
  3. underscorejs.org montre pas de rappel de l'utilisation
  4. lodash.com montre l'utilisation de la

Un autre exemple : à l'aide de la fonction de rappel pour extraire de marques, de couleurs à partir d'une liste

38voto

Petter Points 81

Si vous cherchez à supprimer les doublons, basés sur un id, vous pourriez faire quelque chose comme ceci :

24voto

shiplu.mokadd.im Points 28895

Une façon peut être appliquer sur chacun des éléments du tableau, puis appliquez .

17voto

Larry Battle Points 2709

Mise en œuvre de la réponse de liegeois.

15voto

tuxbear Points 76

Quand j’ai un attribut id, c’est ma façon de favori dans le trait de soulignement :

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