Js 数组去重
时间: 2025-06-01 09:02:50 浏览: 15
### JavaScript 数组去重方法总结
在 JavaScript 中,数组去重是一个常见的需求。以下是几种常用的方法及其代码示例:
#### 方法一:使用 Set 数据结构
`Set` 是一种内置对象,它包含唯一的值集合。通过将数组转换为 `Set`,可以自动去除重复项[^1]。
```javascript
function uniqueArrayWithSet(arr) {
return [...new Set(arr)];
}
const array = [1, 2, 3, 4, 4, 5, 6, 6];
console.log(uniqueArrayWithSet(array)); // 输出: [1, 2, 3, 4, 5, 6]
```
#### 方法二:使用 filter 和 indexOf 方法
`filter` 方法结合 `indexOf` 可以保留第一次出现的元素,从而实现去重[^2]。
```javascript
function uniqueArrayWithFilter(arr) {
return arr.filter((item, index) => arr.indexOf(item) === index);
}
const array = [1, 2, 3, 4, 4, 5, 6, 6];
console.log(uniqueArrayWithFilter(array)); // 输出: [1, 2, 3, 4, 5, 6]
```
#### 方法三:使用 reduce 方法
`reduce` 方法可以用来累积结果,并通过检查当前值是否已存在于累积数组中来实现去重。
```javascript
function uniqueArrayWithReduce(arr) {
return arr.reduce((accumulator, currentValue) => {
if (!accumulator.includes(currentValue)) {
accumulator.push(currentValue);
}
return accumulator;
}, []);
}
const array = [1, 2, 3, 4, 4, 5, 6, 6];
console.log(uniqueArrayWithReduce(array)); // 输出: [1, 2, 3, 4, 5, 6]
```
#### 方法四:使用 Map 数据结构
`Map` 可以用于记录已经出现过的元素,从而实现高效的去重操作。
```javascript
function uniqueArrayWithMap(arr) {
const map = new Map();
return arr.filter(item => !map.has(item) && map.set(item, true));
}
const array = [1, 2, 3, 4, 4, 5, 6, 6];
console.log(uniqueArrayWithMap(array)); // 输出: [1, 2, 3, 4, 5, 6]
```
### 注意事项
每种方法都有其适用场景和性能特点。例如,`Set` 方法简洁高效,但可能不适合需要兼容旧版浏览器的项目;而 `filter` 和 `reduce` 方法虽然兼容性更好,但在处理大规模数据时可能会稍慢一些[^1]。
阅读全文
相关推荐


















