js数组去重有哪些方法
时间: 2023-10-17 11:15:05 浏览: 104
1. 使用Set对象去重:将数组转换为Set对象,然后再将Set对象转换为数组,这样就去除了数组中的重复项。
示例代码:
```javascript
const arr = [1, 2, 2, 3, 3, 4, 5, 5];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4, 5]
```
2. 使用for循环和indexOf方法去重:遍历数组,将每个元素与其后面的元素比较,如果有重复的就从数组中删除。
示例代码:
```javascript
const arr = [1, 2, 2, 3, 3, 4, 5, 5];
for (let i = 0; i < arr.length; i++) {
for (let j = i + 1; j < arr.length; j++) {
if (arr[i] === arr[j]) {
arr.splice(j, 1);
j--;
}
}
}
console.log(arr); // [1, 2, 3, 4, 5]
```
3. 使用reduce方法去重:遍历数组,将每个元素与之前的元素比较,如果没有重复的就将其添加到结果数组中。
示例代码:
```javascript
const arr = [1, 2, 2, 3, 3, 4, 5, 5];
const uniqueArr = arr.reduce((prev, curr) => {
if (!prev.includes(curr)) {
prev.push(curr);
}
return prev;
}, []);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
```
4. 使用Map对象去重:遍历数组,将每个元素作为Map对象的键,如果键不存在就将其添加到结果数组中。
示例代码:
```javascript
const arr = [1, 2, 2, 3, 3, 4, 5, 5];
const map = new Map();
const uniqueArr = [];
for (let i = 0; i < arr.length; i++) {
if (!map.has(arr[i])) {
map.set(arr[i], true);
uniqueArr.push(arr[i]);
}
}
console.log(uniqueArr); // [1, 2, 3, 4, 5]
```
阅读全文