数组去重

通过es6的Array.from和set来实现

        var arr=[1,2,2,1,2,5,7,3,5,6,5];
        function upset1_arr(arr){
            var obj=new Set(arr);
            var new_arr=Array.from(obj);
            return new_arr;
        }

通过es6的…来实现

        function upset1_arr(arr){
            return [...new Set([arr])];
        }

新建一个数组,遍历老数组,通过indexof方法来判断心数组是否添加老数组的值

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

先对数组就行排序,然后再前后两两比较

        function upset3_arr(arr){
            var new_arr=[];
            arr.sort();
            for (var i = 0; i < arr.length; i++) {
                if(arr[i]!=arr[i+1]){
                    new_arr.push(arr[i]);
                }
            }
            return new_arr;
        }

新建一个对象,通过对象的健值对来筛选数组

        function upset4_arr(arr){
            var new_arr=[],obj={};
            for (var i = 0; i < arr.length; i++) {
                if(!obj[arr[i]]){
                    obj[arr[i]]=true;
                    new_arr.push(arr[i]);
                }
            }
            return new_arr;
        }
    原文作者:clearclear
    原文地址: https://segmentfault.com/a/1190000010930651
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞