js 数组去重有哪些方法
时间: 2024-10-29 09:20:38 浏览: 19
JavaScript中数组去重有许多方法,以下是常见的几种:
1. **`Set`对象**: JavaScript的内置Set数据结构不会允许重复元素,你可以将其转换为数组去除重复。```javascript
let array = [...new Set(array)];
```
2. **双重循环**:遍历两次数组,第一次找出所有元素,第二次检查并移除已遇到过的重复项。
```javascript
for(let i=0; i<array.length; i++) {
for(let j=i+1; j<array.length; j++) {
if(array[i] === array[j]) {
array.splice(j, 1);
j--; // 因为删除了元素,所以需要更新j
}
}
}
```
3. **使用Map**: 利用Map的键值无重复特性,遍历一次数组,将元素作为键存入Map。
```javascript
let map = new Map();
let uniqueArray = Array.from(map.keys());
map.forEach((value, index) => uniqueArray.push(value));
```
4. **使用filter和indexOf**:创建一个新的数组,只保留第一次出现的元素。
```javascript
let uniqueArray = array.filter((item, index, self) => self.indexOf(item) === index);
```
5. **使用reduce**:利用reduce函数将数组压缩成一个新数组,只有第一次出现的元素会被保留。
```javascript
let uniqueArray = array.reduce((acc, val) => acc.includes(val) ? acc : [...acc, val], []);
```
阅读全文