web-dev-qa-db-fra.com

Lodash / javascript: Compare deux collections et renvoie les différences

J'ai deux tableaux d'objet:

les éléments de ma table ne sont pas des valeurs primitives, mais des objets complexes.

array1 = [obj1,obj2,obj3,obj4]
array2 = [obj5,obj5,obj6,obj7]

Je voudrais comparer deux tableaux et voir des éléments du tableau 2 sont déjà présents dans tableau1 puis créer un nouveau tableau de la différence.

Toute suggestion ?

18
Nacim Idjakirene
var presents = _.intersectionWith(array1, array2, _.isEqual);
var dif = _.differenceWith(array1, array2, _.isEqual);
31
stasovlas

ES6 Cela suffira:

array2.filter(e => !array1.includes(e));

sans comprend

array2.filter(e=> array1.indexOf(e) < 0);

Plunker pour vous

19
Alex Bykov

_. difference vous donne seulement les éléments qui sont dans le 1er tableau mais pas dans le second, rien sur les éléments du tableau 2 qui ne sont pas dans le tableau 1.

Est-ce ce que vous voulez réaliser?

2
Matteo Bombelli