一、两个对象数组合并去重
//方法一
function uniqueFunc(arr, uniId){
//第一个参数是合并后的数组,第二个参数是去重的属性
const res = new Map();
return arr.filter((item) => !res.has(item[uniId]) && res.set(item[uniId], 1));
},
//方法二
function uniqueFunc2(arr, uniId){
let hash = {}
return arr.reduce((accum,item) => {
hash[item[uniId]] ? '' : hash[item[uniId]] = true && accum.push(item)
return accum
},[])
}
用法
let arr1 = [{...}];
let arr2 = [{...}];
let arr = uniqueFunc(arr1.concat(arr2),id)
二、两个对象数组去交集
使用 filter
和 map
let arr1 = [{...}];
let arr2 = [{...}];
//先把数据多的,提出一个公共的属性,这里假设arr1
let ids=arr1.map(item=>item.basicUnitId)
let arr =arr2.filter(item=>!ids.includes(item.basicUnitId))