js数组对象去重,如果数组对象值重复存在时,需改变该数组对象值
时间: 2024-06-15 20:04:58 浏览: 125
js数组去重
4星 · 用户满意度95%
在JavaScript中,可以使用多种方法对数组对象进行去重。一种常见的方法是使用Set数据结构,因为Set只会存储唯一的值。以下是一种基于Set的数组对象去重方法:
```javascript
// 假设存在一个包含重复值的数组对象
let arr = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 1, name: 'Alice' },
{ id: 3, name: 'Charlie' }
];
// 使用Set进行去重
let uniqueArr = Array.from(new Set(arr.map(JSON.stringify)), JSON.parse);
// 修改重复值的数组对象
uniqueArr.forEach((obj, index) => {
if (index !== arr.findIndex(item => item.id === obj.id)) {
obj.name += ` (${index + 1})`;
}
});
console.log(uniqueArr);
```
上述代码中,首先使用`map`方法将数组对象转换为字符串形式,然后使用Set去除重复的字符串,再通过`Array.from`方法将字符串转换回数组对象形式。最后,使用`forEach`方法遍历去重后的数组对象,如果某个对象在原数组中有多个重复出现,则修改其name属性以表示其重复次数。
阅读全文