1. 程式人生 > >js陣列去重有哪些方法?

js陣列去重有哪些方法?

原生js去重方法

1. 冒泡去重

function unique(arr){
    var res=[];
    for(var i=0,len=arr.length;i<len;i++){
        var obj = arr[i];
        for(var j=0,jlen = res.length;j<jlen;j++){
            if(res[j]===obj) break;            
        }
        if(jlen===j)res.push(obj);
    }
    return res;
}
var
arr=[1,1,'2','1',3,4] arr = unique(arr); console.log(arr);

indexOf()方法

function unique(arr){
    var res =[];
    for(var i=0,len=arr.length;i<len;i++){
        var obj = arr[i];
        if(res.indexOf(obj)===-1) res.push(obj);
    }
    return res;
}
var arr=[1,1,'2','1',3,4]
arr = unique(arr);
console.log(arr);// arr=[1,'2','1',3,4]

3. 利用ES5數組裡的filter過濾:

function unique(a) {

  var res = a.filter(function(item, index, array) {
    return array.indexOf(item) === index;
  });

  return res;
}


var a = [1, 1, '1', '2', 1];
var ans = unique(a);
console.log(ans);

4 es6新語法實現陣列去重
set是一種新的資料結構,它可以接收一個數組或者是類陣列物件,自動去重其中的重複專案。

var
arr = [1,2,'1',1,null,null,undefined,undefined,NaN,NaN]; console.log(new Set(arr));

5.