对象和数组去重
时间: 2023-06-22 17:21:50 浏览: 58
对象去重可以通过将对象转换成字符串,再将字符串作为键值存储到一个新的对象中,这样相同的对象会被视为同一个键值,最后再将新的对象转换回原来的对象格式即可。
示例代码:
```javascript
function uniqueObject(arr) {
const obj = {};
for (let i = 0; i < arr.length; i++) {
const str = JSON.stringify(arr[i]);
obj[str] = arr[i];
}
return Object.values(obj);
}
```
数组去重可以使用 ES6 中的 Set 数据结构或者利用 indexOf 和 includes 方法遍历数组,将重复的元素删除。
示例代码:
```javascript
// 使用 Set 数据结构
function uniqueArray(arr) {
return Array.from(new Set(arr));
}
// 利用 indexOf 和 includes 方法
function uniqueArray(arr) {
const result = [];
for (let i = 0; i < arr.length; i++) {
if (result.indexOf(arr[i]) === -1 && !result.includes(arr[i])) {
result.push(arr[i]);
}
}
return result;
}
```
需要注意的是,以上代码对于复杂数据类型(如对象、函数等)的去重并不适用,因为 indexOf 和 includes 方法无法比较复杂数据类型是否相等,而 Set 数据结构默认使用严格相等(===)比较。因此,在对复杂数据类型进行去重时,可以参考对象去重的方法,先将复杂数据类型转换成字符串再进行去重。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)