2个数组对象合并,去重,并且标志出数据来自哪个数组

let arr1 = [{id:1,name:'bj'},{id:2,name:'sh'}];
let arr2 = [{id:3,name:'bj'},{id:2,name:'sh'},{id:4,name:'nj'}];

let arr = arr1.concat(arr2);
let map = new Map();

for (let i = 0, len = arr.length; i < len; i++) {
if (!map.has(arr[i].id)) {
map.set(arr[i].id, arr[i]);
} else {
let t = map.get(arr[i].id);
t.common = ['1', '1'];
map.set(arr[i].id, t);
}
}

let result = Array.from(map.values());
console.dir(result);

posted @ 2019-07-27 12:30  szy-du  阅读(245)  评论(0编辑  收藏  举报