数组中包含对象如何去重
时间: 2024-05-05 12:16:14 浏览: 10
可以使用 Set 数据结构去重,因为 Set 可以自动去重。
例如,假设有以下数组:
```javascript
const arr = [
{ name: 'Tom', age: 20 },
{ name: 'Jerry', age: 18 },
{ name: 'Tom', age: 20 },
{ name: 'Lucy', age: 22 }
];
```
可以使用 Set 去重:
```javascript
const uniqueArr = [...new Set(arr.map(item => JSON.stringify(item)))].map(item => JSON.parse(item));
console.log(uniqueArr);
// 输出:[ { name: 'Tom', age: 20 }, { name: 'Jerry', age: 18 }, { name: 'Lucy', age: 22 } ]
```
这里先使用 map 方法将每个对象转为字符串,再使用 Set 去重,最后再将每个字符串转回对象。需要注意的是,对象需要先转为字符串才能放入 Set 中,因为对象是引用类型,Set 无法直接去重。
相关问题
js数组对象根据id去重
在JavaScript中,有几种方法可以根据id对数组对象进行去重操作。引用提供了一种方法,使用forEach和some方法来判断数组中是否包含当前对象的id,如果不包含则将当前对象添加到一个新的数组中。引用提供了另一种方法,使用forEach和find方法来判断数组中是否包含当前对象的id,如果不包含则将当前对象添加到一个新的数组中。引用提供了第三种方法,使用reduce方法来遍历数组,通过定义一个对象来判断当前对象的id是否已存在,如果不存在则将其添加到一个新的数组中。
综上所述,你可以使用这些方法来实现JavaScript数组对象根据id进行去重的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [数组根据对象id去重的几种方法](https://blog.csdn.net/pig_pig32/article/details/123530607)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
js数组中 set方法去重
在JavaScript中,可以使用Set对象来进行数组去重。Set是ES6新提供的数据结构,类似于数组,但是本身没有重复值。利用这一特性,我们可以将数组转为Set类型进行去重,然后使用Array.from方法将其再转为数组。具体实现方法如下所示:
```
var arr = [1, '2', 3, 4, undefined, NaN, NaN, 33, 33, 22];
var newArr = Array.from(new Set(arr));
console.log(newArr);
```
上述代码中,首先定义了一个包含重复元素的数组arr,然后使用Set对象将其转为Set类型进行去重,最后使用Array.from方法将其再转为数组。最终输出的newArr数组中,所有重复元素都被去除了。