web-dev-qa-db-ja.com

Lodash / javascript:2つのコレクションを比較し、違いを返す

私はオブジェクトの2つの配列を持っています:

テーブルの要素はプリミティブな値ではなく、複雑なオブジェクトです。

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

2つの配列を比較し、配列2の要素が既にarray1に存在することを確認してから、差の新しい配列を作成します。

なにか提案を ?

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

ES6これで十分です:

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

なしincludes

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

Plunker あなたのため

19
Alex Bykov

_。difference は、1番目の配列にはあるが2番目の配列にはない要素のみを提供し、配列1にない配列2の要素については何も提供しません。

これはあなたが達成したいことですか?

2
Matteo Bombelli