js 数组根据id去重
时间: 2023-06-21 20:09:18 浏览: 104
JS数组中对象去重操作示例
可以使用数组的 reduce() 方法和一个对象来实现根据 id 去重。具体步骤如下:
1. 使用 reduce() 方法遍历数组,将每个元素的 id 作为 key 存入一个空对象中。
2. 如果对象中不存在当前元素的 id,则将其加入结果数组中,并将其 id 在对象中设为 true。
3. 返回结果数组。
示例代码如下:
```javascript
const arr = [
{ id: 1, name: 'foo' },
{ id: 2, name: 'bar' },
{ id: 1, name: 'baz' },
{ id: 3, name: 'qux' },
{ id: 2, name: 'quux' }
];
const uniqueArr = arr.reduce((acc, cur) => {
if (!acc[cur.id]) {
acc[cur.id] = true;
acc.result.push(cur);
}
return acc;
}, { result: [] }).result;
console.log(uniqueArr); // [{ id: 1, name: 'foo' }, { id: 2, name: 'bar' }, { id: 3, name: 'qux' }]
```
在上面的代码中,我们使用一个对象 `{ result: [] }` 作为 reduce() 方法的初始值,其中 `result` 属性存储去重后的结果数组。
在 reduce() 方法的回调函数中,如果对象中不存在当前元素的 id,则将其加入结果数组中,同时将其 id 在对象中设为 true。最后返回包含去重后结果的对象的 `result` 属性。
阅读全文