js数组去重的几种方法

总结几种js数组去重的方法:

第一种:创建一个新数组res,遍历原数组arr,

如果遍历的arr数组元素在新数组res数组中不存在,就吧这个遍历出来的元素添加到新数组res中,否则跳出内层循环,不进行res数组元素添加

function quchongArray(arr){
            let res=[];
            for(var i=0;i<arr.length;i++){
                let flag = true;
                for(var j=0;j<res.length;j++){
                    if(arr[i] ===res[j]){
                        flag =false;
                        break;
                    }

                }
                if(flag){
                    res.push(arr[i]);
                }
            }

            return res;
        }   
        let arr =[1,2,3,4,3,2,6,2,12,31,1,2,3];
        console.log(quchongArray(arr));

第二种:先进行数组排序,然后定一个新的数组,遍历排序后的数组,如果排序后的数组元素不等于新数组的最后一个元素,则添加。

   function quchongArray(arr) {

            function sortNumber(a, b) {
                return a - b;
            }
            let newArr = arr.sort(sortNumber);
            let res = []
            for(let i=0;i<newArr.length;i++){
                if(newArr[i]!=res[res.length-1]){
                    res.push(newArr[i]);
                }
            }
            return res;
        }
        let arr = [1, 2, 3, 4, 3, 2, 6, 22, 12, 31, 1, 2, 3];
        console.log(quchongArray(arr));

第三种:利用对象的特性进行排序。遍历数组,如果该数组元素不是对象的属性,就添加到新数组中

 function quchongArray(arr){
        let obj = {};
        let res=[];
        for(let i=0;i<arr.length;i++){
            if(!obj[arr[i]]){
                res.push(arr[i]);
                obj[arr[i]]=1;
            }
        }
        return res;
    }
    let arr = [1,2,3,4,3,2,1,5,2,3,6];
    console.log(quchongArray(arr));

第四种:通过 filter筛选出,去重之后的数组。如果indexOf方法在该元素索引之后在在查不到该元素的位置。表示该元素不存在,符合要求

   function quchongArray(arr){
        return arr.filter(function(item,index,array){
            return array.indexOf(item,index+1) === -1
        })
    }
    let arr = [1,2,3,4,3,2,1,5,2,3,6];
    console.log(quchongArray(arr));

第五种:通过es6,Set集合不能包含重复元素的特性来进行去重处理,最后将set对象转换为数组

function quchongArray(arr){
        return Array.from(new Set(arr));
    }
    let arr = [1,2,3,4,3,2,1,5,2,3,6,2,1,7];
    console.log(quchongArray(arr));
原文地址:https://www.cnblogs.com/garyzhijiang/p/9116948.html