js数组对象去重
时间: 2023-06-22 10:29:45 浏览: 48
可以使用 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中数组对象去重的方法有很多种,下面列举几种常见的方法:
1. 使用Set:使用Set数据结构可以快速实现数组对象的去重。通过将数组对象转化为Set,再将Set转化回数组即可实现去重。
```javascript
const arr = [{id: 1}, {id: 2}, {id: 1}, {id: 3}];
const uniqueArr = Array.from(new Set(arr.map(JSON.stringify))).map(JSON.parse);
console.log(uniqueArr);
```
2. 使用reduce方法:利用reduce方法遍历数组对象,通过判断对象在结果数组中是否已存在来进行去重。
```javascript
const arr = [{id: 1}, {id: 2}, {id: 1}, {id: 3}];
const uniqueArr = arr.reduce((result, current) => {
const isExist = result.some(item => item.id === current.id);
if (!isExist) {
result.push(current);
}
return result;
}, []);
console.log(uniqueArr);
```
3. 使用filter方法:利用filter方法和indexOf来判断对象在数组中的索引位置,从而进行去重。
```javascript
const arr = [{id: 1}, {id: 2}, {id: 1}, {id: 3}];
const uniqueArr = arr.filter((item, index, self) => {
return index === self.findIndex(obj => obj.id === item.id);
});
console.log(uniqueArr);
```
以上是一些常见的数组对象去重方法,根据具体业务场景选择适合的方法即可。
es6 js数组对象去重
在使用ES6的方法去重数组对象时,可以采用两种方法。方法一是使用filter()和findIndex()函数的组合。通过filter()函数筛选出数组中的每个元素,然后使用findIndex()函数来检查该元素是否在数组中的其他位置有重复。如果没有重复,则保留该元素。方法二是使用reduce()函数进行去重。reduce()函数可以通过遍历数组来生成一个新的数组,其中不包含重复的元素。这两种方法都可以有效地实现数组对象的去重操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [JavaScript数组去重—ES6的两种方式](https://blog.csdn.net/FE_dev/article/details/78110153)[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_2"}}] [.reference_item style="max-width: 50%"]
- *3* [【ES6】es6数组中对象去重,数组对象去重方法总结---filter()与reduce()实践](https://blog.csdn.net/weixin_42960907/article/details/123202275)[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_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]