es6 数组对象合并去重
有多种方法可以合并和去重 JavaScript 数组对象。以下是一些示例:
方法一:使用 Set 和展开运算符
const arr1 = [{id: 1, name: 'John'}, {id: 2, name: 'Mary'}, {id: 3, name: 'David'}];
const arr2 = [{id: 2, name: 'Mary'}, {id: 4, name: 'Bob'}, {id: 5, name: 'Alice'}];
const mergedArray = [...new Set([...arr1, ...arr2])];
console.log(mergedArray); // [{id: 1, name: 'John'}, {id: 2, name: 'Mary'}, {id: 3, name: 'David'}, {id: 4, name: 'Bob'}, {id: 5, name: 'Alice'}]
方法二:使用 reduce 和 Object.values()
const arr1 = [{id: 1, name: 'John'}, {id: 2, name: 'Mary'}, {id: 3, name: 'David'}];
const arr2 = [{id: 2, name: 'Mary'}, {id: 4, name: 'Bob'}, {id: 5, name: 'Alice'}];
const mergedArray = Object.values([...arr1, ...arr2].reduce((acc, cur) => {
acc[cur.id] = cur;
return acc;
}, {}));
console.log(mergedArray); // [{id: 1, name: 'John'}, {id: 2, name: 'Mary'}, {id: 3, name: 'David'}, {id: 4, name: 'Bob'}, {id: 5, name: 'Alice'}]
方法三:使用 Map 和 for...of 循环
const arr1 = [{id: 1, name: 'John'}, {id: 2, name: 'Mary'}, {id: 3, name: 'David'}];
const arr2 = [{id: 2, name: 'Mary'}, {id: 4, name: 'Bob'}, {id: 5, name: 'Alice'}];
const mergedMap = new Map();
for (const obj of [...arr1, ...arr2]) {
mergedMap.set(obj.id, obj);
}
const mergedArray = Array.from(mergedMap.values());
console.log(mergedArray); // [{id: 1, name: 'John'}, {id: 2, name: 'Mary'}, {id: 3, name: 'David'}, {id: 4, name: 'Bob'}, {id: 5, name: 'Alice'}]
原文地址: https://www.cveoy.top/t/topic/bUIl 著作权归作者所有。请勿转载和采集!