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 № 1var 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?