js两个list对象去重合并
时间: 2023-07-25 19:18:01 浏览: 169
你可以使用 Set 数据结构来去重,然后将两个数组合并即可。具体实现如下:
假设每个 list 对象都有一个 id 字段,我们可以先将两个 list 对象合并为一个新的 list 数组,然后遍历这个新数组,使用一个 Map 数据结构来记录每个 id 是否已经存在,如果不存在,则将该对象添加到结果数组中。具体实现如下:
```javascript
const list1 = [
{ id: 1, name: 'A' },
{ id: 2, name: 'B' },
{ id: 3, name: 'C' }
];
const list2 = [
{ id: 3, name: 'C' },
{ id: 4, name: 'D' },
{ id: 5, name: 'E' }
];
const newList = [...list1, ...list2];
const map = new Map();
const result = [];
newList.forEach(item => {
if (!map.has(item.id)) {
map.set(item.id, true);
result.push(item);
}
});
console.log(result);
// [{ id: 1, name: 'A' }, { id: 2, name: 'B' }, { id: 3, name: 'C' }, { id: 4, name: 'D' }, { id: 5, name: 'E' }]
```
在上面的代码中,我们首先将两个 list 对象通过扩展运算符 `...` 合并为一个新数组,然后遍历这个新数组,使用 Map 数据结构来记录每个 id 是否已经存在,如果不存在,则将该对象添加到结果数组中。最后得到的结果数组就是去重后的合并结果。
阅读全文