js中的数组去重
时间: 2023-06-21 15:12:32 浏览: 55
在 JavaScript 中,有多种方法可以实现数组去重。以下是其中的几种常见方法:
1. 使用 Set 集合
```javascript
let arr = [1, 2, 3, 2, 1];
let uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3]
```
2. 使用 filter 方法
```javascript
let arr = [1, 2, 3, 2, 1];
let uniqueArr = arr.filter((item, index, array) => {
return array.indexOf(item) === index;
});
console.log(uniqueArr); // [1, 2, 3]
```
3. 使用 reduce 方法
```javascript
let arr = [1, 2, 3, 2, 1];
let uniqueArr = arr.reduce((prev, curr) => {
if (!prev.includes(curr)) {
prev.push(curr);
}
return prev;
}, []);
console.log(uniqueArr); // [1, 2, 3]
```
这些方法都可以有效地去除数组中的重复项。但需要注意的是,对于包含对象或数组等引用类型的数组,使用 Set 集合去重可能会存在问题,因为 Set 只能针对基本数据类型进行去重,而引用类型的比较是基于引用地址的,而不是值的比较。此时,可以使用其他方法,如使用 filter 和 reduce 方法结合使用自定义比较函数等。