js new set数组对象去重对象
时间: 2023-10-10 10:09:46 浏览: 129
在JavaScript中,可以使用Set对象来实现数组和对象的重操作。Set是一种新的数据结构,类似于数组,但是可以去除重复的值。但需要注意的是,对于存储引用类型的值,Set无法自动去重,因为相同的引用值在内存中的地址是不一样的。只有当引用值的地址完全相同才会被认为是重复的。下面是一个例子:
```javascript
var mySet = new Set();
mySet.add([-1, 0, 1]);
mySet.add([-1, 0, 1]);
mySet.add({a: 1});
mySet.add({a: 1});
console.log(Array.from(mySet));
```
输出结果为:[[-1, 0, 1], [-1, 0, 1], {a: 1}, {a: 1}],可以看到,数组和对象的重复值并没有被自动去重。
如果想要对多维数组和对象进行深层的去重操作,常见的方法是使用Set结合filter函数进行操作。但是需要注意的是,Set和filter只能对一维数组进行去重,无法进行深层的去重。如果需要对多维数组和对象进行深层的去重,可以使用递归的方法判断是否为对象,如果是对象则继续递归判断其值是否为数组或对象,以此类推。
总结来说,通过使用Set对象可以实现对数组和对象的去重操作,但对于存储引用类型的值需要注意地址的唯一性。如果需要对多维数组和对象进行深层的去重操作,可以结合递归和判断值的类型来实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [new set数组对象去重失败](https://blog.csdn.net/qq_22182989/article/details/129386809)[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%"]
- *2* [多维数组和对象-深去重和深拷贝.js](https://download.csdn.net/download/weixin_44786867/12702478)[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 ]
阅读全文