数组对象去重js
时间: 2023-06-21 08:10:22 浏览: 102
可以使用 Set 数据结构来去重数组对象,然后将 Set 转换回数组即可。
例如:
```javascript
const arr = [
{ id: 1, name: "John" },
{ id: 2, name: "Jane" },
{ id: 1, name: "John" },
{ id: 3, name: "Sarah" },
];
const uniqueArr = Array.from(new Set(arr.map((item) => item.id))).map((id) =>
arr.find((item) => item.id === id)
);
console.log(uniqueArr);
```
这段代码首先使用 `map` 方法将原数组中的每个对象转换为它们的 `id` 值,并用 `Set` 去重。然后通过 `Array.from` 将 `Set` 转换为数组,再使用 `map` 方法找到原数组中对应的对象,最终返回的就是去重后的数组对象。
相关问题
js数组对象去重
可以使用 ES6 的 Set 数据结构来实现数组对象去重,具体代码如下:
```
let arr = [{id: 1, name: 'Alice'}, {id: 2, name: 'Bob'}, {id: 1, name: 'Alice'}];
let set = new Set(arr.map(JSON.stringify));
let uniqueArr = Array.from(set).map(JSON.parse);
console.log(uniqueArr);
```
首先将数组对象转换为字符串形式,然后使用 Set 数据结构去重,最后再将去重后的字符串数组转换为原始的对象数组即可。
js数组对象去重,如果数组对象值重复存在时,需改变该数组对象值
在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属性以表示其重复次数。
阅读全文