js去掉map中重复的数据
时间: 2023-01-31 14:06:54 浏览: 49
可以使用 JavaScript 的 Set 结构来去除数组中的重复数据。
Set 是一种新的数据结构,它类似于数组,但是成员的值都是唯一的,没有重复的值。
例如,要去除数组 `[1, 2, 3, 1, 2]` 中的重复数据,可以这样写:
```
const arr = [1, 2, 3, 1, 2];
const unique = [...new Set(arr)];
// unique 现在是 [1, 2, 3]
```
首先,将原数组转换为 Set 结构,然后使用扩展运算符(...)将 Set 转换回数组。
这样就可以得到一个新的数组,其中包含了原数组中的所有唯一值。
如果你想在 map 函数中使用这个方法,可以这样写:
```
const arr = [1, 2, 3, 1, 2];
const unique = arr.map(x => x).filter((x, i, a) => a.indexOf(x) === i);
// unique 现在是 [1, 2, 3]
```
在 map 函数中,我们使用了一个简单的转换函数,将每个元素映射为自身。然后,使用 filter 函数过滤掉重复的元素。这个方法基于 indexOf 函数,它返回给定元素在数组中第一次出现的位置。如果这个位置与当前元素的位置相同,则表示当前元素是唯一的,需要保留。
相关问题
js 去除数组中重复对象
可以使用 Set 数据结构来去除数组中的重复元素。具体实现代码如下:
```javascript
let arr = [{name: 'Alice'}, {name: 'Bob'}, {name: 'Alice'}];
let newArr = [...new Set(arr.map(item => JSON.stringify(item)))].map(item => JSON.parse(item));
console.log(newArr);
// 输出 [{name: 'Alice'}, {name: 'Bob'}]
```
上面的代码中,我们使用了 map() 方法将数组中的每个对象转换成 JSON 字符串,因为 Set 只能去除基本类型数据的重复元素。然后再将去重后的 JSON 字符串数组转换回对象数组。
js 去掉数组对象中的重复对象
可以使用 Set 数据结构来去掉数组对象中的重复对象。具体做法是先将数组转为 Set,然后再将 Set 转回数组。示例代码如下:
```javascript
let arr = [{a: 1}, {a: 2}, {a: 1}];
let set = new Set(arr.map(JSON.stringify));
let uniqueArr = Array.from(set).map(JSON.parse);
console.log(uniqueArr); // [{a: 1}, {a: 2}]
```
上述代码中,我们使用了 `JSON.stringify()` 和 `JSON.parse()` 来将对象转为字符串和将字符串转回对象。这是因为 Set 只能存储基本类型的值,而不能存储对象等引用类型的值。因此,需要先将对象转为字符串再存储到 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)