js数组去重

作者: whiteMu | 来源:发表于2019-08-14 11:03 被阅读3次

    关于数组去重的几种方案:
    1.利用Array.indexOf()的方法,判断新数值里是否已经包含了原数组的元素,包含了就不放入新数组,未包含则将元素加入新数组。

    function fun1(arr){
            var newArr = [];
            for(var i = 0;i<arr.length;i++){
                if(newArr.indexOf(arr[i]) == -1){
                    newArr.push(arr[i]);
                }
            }
            return newArr;
    }
    

    2.利用对象的属性不能重复定义去重重复的元素

    function fun2(arr){
        var obj = {};
        var newArr = [];
        for(var i = 0;i<arr.length;i++){
            if(!obj[arr[i]]){
                newArr.push(arr[i]);
                obj[arr[i]] = 1;
            }
        }
        return newArr;
    }
    

    3.先对数组进行排序后,对数组相邻两位进行比较,相等则不push到新数组(此方法更改了原数组)

    function fun3(arr){
        var newArr = [];
        arr.sort(function(a, b){
            return a - b;
        })
        newArr.push(arr[0]);
        for(var i = 0;i<arr.length;i++){
            if(arr[i] != newArr[newArr.length - 1]){
                newArr.push(arr[i]);
            }
        }
        return newArr;
    }
    

    4.利用ES6的新增Set对象,Set会保留任何数据类型的唯一值,并返回一个伪数组

    function fun4(arr){
        var newArr = new Set(arr);
        return Array.from(newArr);
    }
    

    相关文章

      网友评论

        本文标题:js数组去重

        本文链接:https://www.haomeiwen.com/subject/bqtgjctx.html