js filter数组去重
时间: 2024-03-09 15:43:23 浏览: 91
在JavaScript中,可以使用`filter`方法对数组进行去重操作。下面是一种常见的使用`filter`方法进行数组去重的方式:
```javascript
const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = arr.filter((value, index, self) => {
return self.indexOf(value) === index;
});
console.log(uniqueArr); // [1, 2, 3, 4, 5]
```
在上述代码中,`filter`方法接受一个回调函数作为参数,该回调函数会被应用于数组的每个元素。在回调函数中,使用`indexOf`方法来判断当前元素在数组中的第一个索引位置是否与当前索引位置相同,如果相同则保留该元素,否则过滤掉。这样就可以得到一个去重后的新数组。
相关问题
js map数组去重
JS中的Map对象可以用于数组去重,它是ES6中新出的语法,本质上也是键值对,只是其键不局限于普通对象的字符串。使用Map对象去重的方法是遍历数组,如果Map对象中不存在当前元素,则将其添加到Map对象中,并将其添加到新数组中。如果Map对象中已经存在当前元素,则不将其添加到新数组中。除了Map对象,还可以使用双层for循环和Array.filter和map对象数组去重等方法进行数组去重。
利用JavaScript实现数组去重
可以使用以下方法实现数组去重:
1. 利用Set数据结构
```
let arr = [1, 2, 2, 3, 3, 4, 5, 5];
let uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4, 5]
```
2. 利用filter方法
```
let arr = [1, 2, 2, 3, 3, 4, 5, 5];
let uniqueArr = arr.filter((item, index, array) => {
return array.indexOf(item) === index;
});
console.log(uniqueArr); // [1, 2, 3, 4, 5]
```
3. 利用reduce方法
```
let arr = [1, 2, 2, 3, 3, 4, 5, 5];
let uniqueArr = arr.reduce((prev, cur) => {
if (!prev.includes(cur)) prev.push(cur);
return prev;
}, []);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
```
以上三种方法都可以实现数组去重,其中利用Set数据结构的方法最为简洁。
阅读全文