reduce实现对象数组去重
时间: 2023-06-21 10:17:07 浏览: 93
js代码-去重:reduce + includes
要使用reduce实现对象数组去重,可以使用以下代码:
```javascript
const arr = [
{ id: 1, name: "apple" },
{ id: 2, name: "banana" },
{ id: 2, name: "banana" },
{ id: 3, name: "orange" },
{ id: 4, name: "peach" },
{ id: 4, name: "peach" },
{ id: 5, name: "watermelon" },
];
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: 'apple' },
// { id: 2, name: 'banana' },
// { id: 3, name: 'orange' },
// { id: 4, name: 'peach' },
// { id: 5, name: 'watermelon' }
// ]
```
在reduce的初始值中传入一个空数组,然后在回调函数中将累加器中已有的对象的id放入一个数组中,并判断当前遍历到的对象是否已经存在于累加器中,如果不存在,则将其添加到累加器中。最后返回累加器即可得到去重后的对象数组。
阅读全文