【发布时间】:2020-02-18 07:42:04
【问题描述】:
我有以下对象数组?
let arr1 = [{
id: 1,
props: []
}, {
id: 2,
props: []
}, {
id: 3,
props: []
}]
let arr2 = [{
id: 1,
props: ['a', 'b']
}, {
id: 3,
props: []
}]
我需要以某种方式比较这两个数组并返回一个新数组,该数组只包含 ID 不在两个原始数组中的对象。所以在上面的例子中,它应该只包含 ID 为 2 的对象,因为它只在 arr1 中。
我尝试使用
let arr3 = _.differenceWith(arr1, arr2, _.isEqual)
只要对象中的 props 数组相似并且我不更改它(我只在第二个数组中更改它),它就可以工作。
我也试过这个:
let arr3 = _.filter(arr1, o => o.id === _.find(arr2, obj2 => o.id === obj2.id))
但这根本不起作用。
有什么想法吗?
【问题讨论】:
标签: javascript arrays lodash