js map数组去重
时间: 2023-11-16 10:57:54 浏览: 119
JS中的Map对象可以用于数组去重,它是ES6中新出的语法,本质上也是键值对,只是其键不局限于普通对象的字符串。使用Map对象去重的方法是遍历数组,如果Map对象中不存在当前元素,则将其添加到Map对象中,并将其添加到新数组中。如果Map对象中已经存在当前元素,则不将其添加到新数组中。除了Map对象,还可以使用双层for循环和Array.filter和map对象数组去重等方法进行数组去重。
相关问题
js json数组去重
可以使用ES6的Set数据结构来去重,具体代码如下:
let arr = [1, 2, 3, 3, 4, 4, 5];
let uniqueArr = Array.from(new Set(arr));
console.log(uniqueArr); // [1, 2, 3, 4, 5]
如果需要去重的是包含JSON对象的数组,则可以先将数组中的JSON对象序列化成字符串,再进行去重操作,最后再将字符串还原为JSON对象,具体代码如下:
let arr = [{name: 'Tom', age: 18}, {name: 'Jack', age: 20}, {name: 'Tom', age: 18}];
let uniqueArr = Array.from(new Set(arr.map(JSON.stringify))).map(JSON.parse);
console.log(uniqueArr); // [{name: "Tom", age: 18}, {name: "Jack", age: 20}]
js es6 数组去重
### JavaScript ES6 数组去重方法
#### 使用 `Set` 结构
ES6 提供了一种非常简洁的方式来去除数组中的重复项。通过利用 `Set` 数据结构,可以轻松实现这一目标。
```javascript
const removeDuplicates = nums => [...new Set(nums)];
```
这种方法不仅简单易懂而且易于维护[^1]。
#### 手动过滤重复元素
对于某些特定场景下可能需要更灵活的方式处理数组去重问题,则可以通过遍历原数组并构建一个新的不含重复值的结果集来完成:
```javascript
function uniqueArray(arr) {
let seen = new Map();
return arr.filter(item => !seen.has(item) && seen.set(item, 1));
}
```
这段代码创建了一个名为 `uniqueArray` 的函数,它接受一个参数 `arr` 表示待处理的原始数组。内部定义了变量 `seen` 来存储已经遇到过的项目;接着调用了 `.filter()` 方法迭代整个输入序列,并仅保留那些尚未被记录到映射表里的成员[^4]。
#### 基于索引位置判断
另一种常见的做法是基于当前项目的首次出现位置来进行筛选:
```javascript
function deduplicate(array) {
return array.filter((item, index) => array.indexOf(item) === index);
}
```
此方案同样能够有效地移除多余的副本,不过当面对大型数据集合时性能表现可能会稍逊一筹因为每次都会重新计算 `indexOf`。
阅读全文
相关推荐
















