1. 程式人生 > >陣列去重五種方法

陣列去重五種方法

方法一:

    var arr=[21,21,2,3,5,77,2];
    var arr2=[];
    for(var i=0;i<arr.length;i++){
        var flag=true;
        for(var j=0;j<arr2.length;j++){
            if (arr[i]==arr2[j]) {
                flag=false;
            };
        }
        if (flag) {
            arr2.push(arr[i]);
        };
    }

方法二:

var arr=[21,21,2,3,5,77,2];
    var arr2=[];
    arr=arr.sort(px);
    function px(a,b){
        return a-b;
    }
    for(var i=0;i<arr.length;i++){
        if (arr[i]!=arr2[arr2.length-1]) {
            arr2.push(arr[i]);
        };
    }

方法三:

    var arr=[21,21,2,3,5,77,2];
    var
arr2=Array.from(new Set(arr));

方法四:

var arr=[21,21,2,3,5,77,2];
    var dx={},arr2=[];
    for(var i=0;i<arr.length;i++){
        if (dx[arr[i]]!=1) {
            arr2.push(arr[i]);
            dx[arr[i]]=1;
        };
    }

方法五:
解釋:item傳入的值,index陣列下標,array陣列
filter()過濾器:返回true,則保留,返回false,則捨去

    var arr=[21,21,2,3,5,77,2];
    var arr2=[];
    arr2=arr.filter(function(item,index,array){
        return array.indexOf(item,index+1)===-1;
    });