Js如何都数组对象进行去重
时间: 2023-12-09 14:33:59 浏览: 54
中可以使用Set数据结构来进行数组对象去重。具体实现方法如下所示:
```javascript
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 中,可以使用多种方法对数组对象进行去重。下面列举了几种常见的方法:
1. 使用 Set 数据结构:Set 是一种无重复值的集合,可以用来去除数组中的重复元素。例如:
```javascript
const array = [{id: 1}, {id: 2}, {id: 1}, {id: 3}];
const uniqueArray = [...new Set(array.map(JSON.stringify))].map(JSON.parse);
console.log(uniqueArray);
```
2. 使用 filter() 方法和 indexOf() 方法:使用 filter() 方法遍历数组,同时使用 indexOf() 方法判断当前元素是否已经出现过。例如:
```javascript
const array = [{id: 1}, {id: 2}, {id: 1}, {id: 3}];
const uniqueArray = array.filter((item, index) => {
return index === array.findIndex(obj => JSON.stringify(obj) === JSON.stringify(item));
});
console.log(uniqueArray);
```
3. 使用 reduce() 方法:使用 reduce() 方法遍历数组,将不重复的元素添加到一个新的数组中。例如:
```javascript
const array = [{id: 1}, {id: 2}, {id: 1}, {id: 3}];
const uniqueArray = array.reduce((acc, item) => {
const hasDuplicate = acc.some(obj => JSON.stringify(obj) === JSON.stringify(item));
if (!hasDuplicate) {
acc.push(item);
}
return acc;
}, []);
console.log(uniqueArray);
```
这些方法都可以用来去除数组中的重复对象。注意,在比较对象是否相等时,需要将对象转换为字符串进行比较,因为对象之间的直接比较是基于引用的,而不是对象自身的内容。
js数组对象set去重
可以使用 Set 对数组对象进行去重。具体实现方法如下:
```
let arr = [{id: 1, name: 'Alice'}, {id: 2, name: 'Bob'}, {id: 1, name: 'Charlie'}];let set = new Set(arr.map(item => item.id));
let result = Array.from(set).map(id => arr.find(item => item.id === id));
```
上述代码中,首先使用 map() 函数遍历数组对象,将对象的 id 属性提取出来,然后使用 Set 对 id 数组进行去重。最后使用 map() 函数遍历去重后的 id 数组,通过 find() 函数找到对应的对象,最终得到一个去重后的新数组 result。
阅读全文