/ Porovnať dve zbierky a vrátiť rozdiely

Lodash / [odstránené] porovnať dve zbierky a vrátiť rozdiely [duplikát] - javascript, polia, lodash, javascript-predmety

Mám dve pole objektu:

Prvok mojej tabuľky nie je primitívna hodnota, ale komplexné objekty.

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

Chcel by som porovnať dve polia a vidieť prvky poľa 2 sú už prítomné v poli1 a potom vytvoriť nové pole rozdielu.

Nejaké návrhy ?

odpovede:

14 pre odpoveď č. 1
var presents = _.intersectionWith(array1, array2, _.isEqual);
var dif = _.differenceWith(array1, array2, _.isEqual);

9 pre odpoveď č. 2

ES6 To bude stačiť:

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

bez zahŕňa

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

Plunker pre teba


1 pre odpoveď č. 3

_.rozdiel vám dáva len prvky, ktoré sú v prvom poli, ale nie v druhom, nič o prvkoch v poli 2, ktoré nie sú v poli 1.

Je to to, čo chcete dosiahnuť?