Lodash / javascript:比较两个集合并返回差异

时间:2016-11-17 13:25:39

标签: javascript arrays lodash javascript-objects

我有两个对象数组:

我的表格元素不是原始值,而是复杂对象。

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

我想比较两个数组,看看数组2的元素已经存在于array1中,然后创建一个新差异的数组。

有什么建议吗?

3 个答案:

答案 0 :(得分:28)

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

答案 1 :(得分:14)

ES6 这就足够了:

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

没有包含

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

Plunker为你

答案 2 :(得分:1)

_.difference只提供第一个数组中但不包含第二个数组的元素,没有关于数组2中不在数组1中的元素。

这是你想要达到的目标吗?