/ / Lodash / javascript: Compare duas coleções e retorne as diferenças [duplicate] - javascript, arrays, lodash, javascript-objects

Lodash / javascript: Compare duas coleções e retorne as diferenças [duplicate] - javascript, arrays, lodash, javascript-objects

Eu tenho dois array de objeto:

o elemento da minha tabela não é um valor primitivo, mas objetos complexe.

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

Eu gostaria de comparar duas matrizes e ver os elementos da matriz 2 já estão presentes na matriz1, em seguida, criar uma nova matriz da diferença.

Alguma sugestão ?

Respostas:

14 para resposta № 1
var presents = _.intersectionWith(array1, array2, _.isEqual);
var dif = _.differenceWith(array1, array2, _.isEqual);

9 para resposta № 2

ES6 Isso será o suficiente:

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

sem inclui

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

Plunker para voce


1 para resposta № 3

_.diferença fornece apenas os elementos que estão na primeira matriz, mas não na segunda, nada sobre os elementos na matriz 2 que não estão na matriz 1.

É isso que você quer alcançar?