欢迎光临
技术人生-雨巷前端

数组去重

1、最简单去重法:

var arr=['12','32','89','12','12','78','12','32'];
    function unique1(array){
        var n = []; //一个新的临时数组
        for(var i = 0; i < array.length; i++){ //遍历当前数组
            if (n.indexOf(array[i]) == -1)
                n.push(array[i]);
        }
        return n;
    }
    arr=unique1(arr);

2、速度最快, 占空间最多(空间换时间)

function unique2(array){
        var n = {}, r = [], type;
        for (var i = 0; i < array.length; i++) {
            type = typeof array[i];
            if (!n[array[i]]) {
                n[array[i]] = [type];
                r.push(array[i]);
            } else if (n[array[i]].indexOf(type) < 0) {
                n[array[i]].push(type);
                r.push(array[i]);
            }
        }
        return r;
    }

3、数组下标判断法

function unique3(array){
        var n = [array[0]]; //结果数组
        for(var i = 1; i < array.length; i++) { //从第二项开始遍历
            if (array.indexOf(array[i]) == i) 
                n.push(array[i]);
        }
        return n;
    }

4、ES6

arr=[...new Set(arr)];
function dedupe(array) {
  return Array.from(new Set(array));       //Array.from()能把set结构转换为数组
}

 

 

 

 

 

 

 

 

 

 

 

 

未经允许不得转载:技术人生 » 数组去重

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

我是前端,我不迷茫