js 相同属性的数组对象 去重
时间: 2023-08-30 08:08:56 浏览: 140
js代码-数组 对象去重 (对象的所有属性相同才能认为相同)
你可以使用 `Array.filter()` 方法和 `Set` 数据结构来实现对具有相同属性的数组对象进行去重。以下是一个示例代码:
```javascript
// 假设arr是包含对象的数组,对象具有相同属性name
const arr = [
{ name: 'John', age: 25 },
{ name: 'Jane', age: 30 },
{ name: 'John', age: 35 },
{ name: 'Jane', age: 40 }
];
// 使用Set和filter去重
const uniqueArr = Array.from(new Set(arr.map(obj => obj.name)))
.map(name => {
return arr.find(obj => obj.name === name);
});
console.log(uniqueArr);
```
在这个例子中,我们首先使用 `map()` 方法将数组中的每个对象的 `name` 属性提取出来并创建一个新的数组。然后,我们使用 `new Set()` 创建一个包含唯一 `name` 值的 Set 对象。最后,我们使用 `Array.from()` 方法将 Set 转换为数组,并使用 `map()` 方法根据 `name` 值查找原始数组中对应的对象。
请注意,这种方法只能去重一个属性,如果需要去重多个属性,可以将多个属性组合成一个唯一的标识。
阅读全文