js 根据某个字段,去重一个集合类型的数组
时间: 2023-07-08 18:54:13 浏览: 102
js数组去重
4星 · 用户满意度95%
假设我们有一个包含多个对象的数组,每个对象都有一个 `id` 字段,我们需要根据 `id` 字段进行去重,保留第一个出现的对象。可以使用 `reduce()` 方法来实现:
```javascript
const arr = [
{ id: 1, name: "Alice" },
{ id: 2, name: "Bob" },
{ id: 3, name: "Charlie" },
{ id: 2, name: "David" },
{ id: 1, name: "Eve" }
];
const uniqueArr = arr.reduce((acc, cur) => {
const ids = acc.map(item => item.id);
if (!ids.includes(cur.id)) {
acc.push(cur);
}
return acc;
}, []);
console.log(uniqueArr);
// Output: [{ id: 1, name: "Alice" }, { id: 2, name: "Bob" }, { id: 3, name: "Charlie" }]
```
在这个例子中,我们首先定义了一个包含多个对象的数组 `arr`。然后,我们使用 `reduce()` 方法来遍历数组,并根据 `id` 字段进行去重。在每次遍历时,我们判断当前对象的 `id` 字段是否已经在前面的对象中出现过,如果没有,就将该对象添加到累加器数组 `acc` 中。最后,我们返回累加器数组 `acc`,这样就得到了一个根据 `id` 字段进行去重的数组。
阅读全文