js数组去重的5种方法
1 JavaScript数组去重
在JavaScript中,快速去重数组成为每一个JavaScript开发人员必备的技能,它可以用来处理数据,使得具有有效性和可靠性,而且不会重复出现重复的项目。本文介绍的5种去重方法能让JavaScript开发者更容易的实现。
1. for循环
for 循环是JavaScript中最简单的去重方法,可以遍历数组中的每一个元素,然后将不在该数组的重复的项目,添加到另一个数组中,最后返回新的数组:
```javascript
var arr=[2,4,5,2,4,5,8];
var result=[];
for (var i=0;i<arr.length;i++){
    if(result.indexOf(arr[i]) == -1) // 若不存在,则添加
    {
        result.push(arr[i]);
    }
}
console.log(result);//[2,4,5,8]
```
2.索引法
有时候,它会比for循环更快一些。 索引法允许快速检查和删除重复项:
```javascript
var arr=[2,4,5,2,4,5,8];
var result=[];
for (var i=0;i<arr.length;i++){
        if(!result[arr[i]]){
            result[arr[i]]=true;
        }
}
result=Object.keys(result); 
console.log(result);//[2,4,5,8]
```
3.Set集合
javascript全局数组
Set集合本身就不允许有重复的项。它的构造函数可以接受一个数组,将其转换为一个Set对象,并将原数组中的重复项过滤掉:
```javascript
var arr=[2,4,5,2,4,5,8];
var result=[...new Set(arr)];
console.log(result);//[2,4,5,8]
```
4.Map和filter
filter() 函数可以用于检查数组中的每一项,看看它是否在Map中出现过。如果没有,就把它添加到Map:
```javascript
var arr=[2,4,5,2,4,5,8];
var Map=new Map();
var result=arr.filter(function(ele) {
    if (!Map.has(ele)) {
        Map.set(ele,true);
        return true;
    }
});
console.log(result);//[2,4,5,8]
```
5.Includes + Array.map
另一种实现方式是使用以includes为检查的map函数。它检查每一项,看看它是否在数组中出现过,如果没有,就把它添加到新的数组中:
```javascript
var arr=[2,4,5,2,4,5,8];
var result=arr.map(function(ele){
    if (!this.includes(ele)) {
        this.push(ele);
        return ele;
    }
},[]); //第二个参数用于储存结果
console.log(result);//[2,4,5,8]
```
以上就是5种JavaScript数组去重的方法。每种方法都有其优点和缺点,并且由于每个JavaScript应用程序都不同,所以每个开发人员都必须考虑它们,才能最后确定使用哪种方法。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。