我有两个对象数组:Lodash/javascript:比较两个集合并返回差异
我的表的元素不是原始值,而是复杂的对象。
array1 = [obj1,obj2,obj3,obj4]
array2 = [obj5,obj5,obj6,obj7]
我想比较两个阵列和看到阵列2的元件的已经存在于ARRAY1然后创建的差的一个新的数组。
有什么建议吗?
我有两个对象数组:Lodash/javascript:比较两个集合并返回差异
我的表的元素不是原始值,而是复杂的对象。
array1 = [obj1,obj2,obj3,obj4]
array2 = [obj5,obj5,obj6,obj7]
我想比较两个阵列和看到阵列2的元件的已经存在于ARRAY1然后创建的差的一个新的数组。
有什么建议吗?
var presents = _.intersectionWith(array1, array2, _.isEqual);
var dif = _.differenceWith(array1, array2, _.isEqual);
_.differenceWith是只可用自4.0.0 lodash版本 –
ES6这将是不够的:
array2.filter(e => !array1.includes(e));
没有包括
array2.filter(e=> array1.indexOf(e) < 0);
Plunker为您
不能使用你的解决方案,因为我使用角度2与打字稿,包括返回一个错误 –
_.difference给你只有在第一个阵列但不在第二个阵列中的元素,没有任何关于阵列2中不在阵列1中的元素。
这是你想要实现的吗?
是这就是我'正试图实现,但是当我使用_difference的情况下,我的两个数组是idantical我有array1作为输出!这是正常的吗? –
不...应该发给你[](我已经在lodash文档中的chrome控制台上测试过了...)。你使用nodejs还是Web浏览器? –
是的最后它工作正常,这是我犯的一个错误。 thx为你的帮助 –
是的,'_.difference' – georg