有多种方法可以合并和去重 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'}]
es6 数组对象合并去重

原文地址: https://www.cveoy.top/t/topic/bUIl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录