js算法arr=[{a:"1",b:"2"}{a:"1",b:"1"]去重
时间: 2024-12-07 12:13:10 浏览: 8
要去除一个包含对象的数组中的重复项,可以根据对象的某个或某些属性来进行去重。假设我们根据对象中的 `a` 属性来进行去重,可以使用以下方法:
```javascript
let arr = [{a:"1", b:"2"}, {a:"1", b:"1"}];
// 使用Map进行去重
let uniqueArr = Array.from(new Map(arr.map(item => [item.a, item])).values());
console.log(uniqueArr);
```
在这个例子中,我们首先使用 `map` 方法将数组转换为一个以 `a` 属性值为键的 Map,然后使用 `Array.from` 和 `Map.values()` 方法将 Map 转换回数组,从而实现去重。
如果需要根据多个属性进行去重,可以将对象的多个属性组合成一个唯一的键:
```javascript
let arr = [{a:"1", b:"2"}, {a:"1", b:"1"}, {a:"2", b:"2"}];
// 根据多个属性进行去重
let uniqueArr = Array.from(
arr.reduce((map, item) => {
const key = `${item.a}|${item.b}`;
if (!map.has(key)) {
map.set(key, item);
}
return map;
}, new Map()).values()
);
console.log(uniqueArr);
```
在这个例子中,我们使用 `reduce` 方法和 `Map` 来根据 `a` 和 `b` 属性组合成的唯一键进行去重。
阅读全文