js数组对象用Set根据属性去重
时间: 2023-07-04 08:23:13 浏览: 71
可以使用 Set 和 Array.from() 方法根据对象的某个属性进行去重。具体实现可以参考以下代码:
```javascript
// 原始数组
const arr = [
{ id: 1, name: 'apple' },
{ id: 2, name: 'banana' },
{ id: 3, name: 'orange' },
{ id: 1, name: 'apple' },
{ id: 4, name: 'pear' },
{ id: 2, name: 'banana' }
];
// 使用 Set 和 Array.from() 方法根据 id 去重
const result = Array.from(new Set(arr.map(item => item.id))).map(id => {
return arr.find(item => item.id === id);
});
console.log(result);
// 输出结果为:
// [
// { id: 1, name: 'apple' },
// { id: 2, name: 'banana' },
// { id: 3, name: 'orange' },
// { id: 4, name: 'pear' }
// ]
```
在上面的代码中,首先使用 map() 方法将原始数组中的元素转换为其 id 属性的值组成的新数组。然后使用 Set 对这个新数组进行去重。最后,使用 Array.from() 方法将 Set 转换为数组,并使用 map() 方法遍历这个数组,返回原始数组中与 id 属性匹配的元素。最终得到的结果就是根据 id 去重后的数组。