两个对象数组找出不同的值
//a 对象数组1
//b 对象数组2
// key 对象数组中的唯一标识 用于找出不同值
objectArrFindDifferentByKey = (a, b, key) => {
const arr = [...a, ...b];
//根据key 筛选出进行比较的数据
let newA = a.map(item => item[key]) || []
let newB = b.map(item => item[key]) || []
return arr.filter(item => {
return !(newA.includes(item[key]) && newB.includes(item[key]));
});
}
示例(如下图):
const A = [
{ id:'aaa', name:'aaa', test:'111' },
{ id:'bbb', name:'bbb', test:'111' },
{ id:'ccc', name:'aaa', test:'111' },
{ id:'ddd', name:'aaa', test:'111' },
{ id:'eee', name:'aaa', test:'111' },
]
const B = [
{ id:'bbb', name:'bbb', test:'111' },
{ id:'ddd', name:'aaa', test:'111' },
{ id:'eee', name:'aaa', test:'111' },
]
// 根据id 找出两个对象数组中的不同值
objectArrFindDifferentByKey(A, B, 'id')
//输出
[{ id:'aaa', name:'aaa', test:'111' },{ id:'ccc', name:'aaa', test:'111' }]