数组去重方法收集

2019-03-07  本文已影响0人  钟钟353251

var arr = [1,2,3,4,5,4,3,2,6,7,8,4,5,7,0]

1. for循环+indexOf

* 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中

* IE8以下不支持数组的indexOf方法

function uniq(array){

        var temp = [];//一个新的临时的数组

        for(var i = 0; i < array.length; i++){

            if(temp.indexOf(array[i]) == -1){

                temp.push(array[i]);

            }

        }

    return temp;

}

2. reduce方法

var newArr = arr.reduce(function(prev,cur){

    prev.indexOf(cur) === -1 && prev.push(cur)

    return prev

},[])

* reduce的用法

arr.reduce(function(prev,cur,index,arr){

...

}, init);

3. ES6 set方法

let arr = [1,2,3,2,1]

arr = Array.from(new Set(arr)) // [1,2,3]

4.借用对象

va runiquelize = function(a){

if(a.constructor !==Array) {

throwTypeError("请传入数组类型");

}

var obj = {}, arr = [];

for(vari =0, j = a.length; i < j; i++) {

if(!obj[a[i]]) {

obj[a[i]] =1; arr.push(a[i]);

}

}

return arr;

};

上一篇 下一篇

猜你喜欢

热点阅读