js数组里面的对象根据其中两个属性值去重
时间: 2023-10-10 21:04:43 浏览: 77
js数组中存对象,根据对象的属性进行去重
你可以使用`reduce`和`find`方法来实现这个需求。代码如下:
```javascript
const arr = [{id: 1, name: 'Alice'}, {id: 2, name: 'Bob'}, {id: 1, name: 'Alice'}, {id: 3, name: 'Charlie'}, {id: 2, name: 'Bob'}];
const uniqueArr = arr.reduce((acc, current) => {
const x = acc.find(item => item.id === current.id && item.name === current.name);
if (!x) {
return acc.concat([current]);
} else {
return acc;
}
}, []);
console.log(uniqueArr); // [{id: 1, name: 'Alice'}, {id: 2, name: 'Bob'}, {id: 3, name: 'Charlie'}]
```
在上面的代码中,我们使用`reduce`方法来遍历数组,如果当前元素在累加器中不存在,则将其添加到累加器中,否则忽略该元素。我们使用`find`方法来查找数组中是否存在具有相同`id`和`name`属性值的对象。如果存在,则返回该对象;否则返回`undefined`。
阅读全文