码迷,mamicode.com
首页 > 编程语言 > 详细

数组去重

时间:2018-12-03 17:19:12      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:font   param   span   push   from   return   array   临时   tle   

对下列数组去重:
var arr = [‘aa‘,‘bb‘,‘cc‘,‘‘,1,0,‘1‘,1,‘bb‘,null,undefine,null];
要求考虑兼容性和效率

方法一

function unique(arr){
    var result = [];
    for (var i = 0;i<arr.length;i++){
        //如果当前数组的第i项已经保存进了临时数组,忽略掉
        //否则的话把当前项push到临时数组里面
        if(result.indexOf(arr[i]) < 0)  result.push(arr[i]);
        //indexOf 返回元素在result中的位置,如果没有返回-1;
    }
    return result;
}
var arr = [‘aa‘,‘bb‘,‘cc‘,‘‘,1,0,‘1‘,1,‘bb‘,null,undefine,null];
console.log(unique(arr));

 

方法二

function unique(arr){
    var result = [];
    var hash = {};
    for ( var i=0;i<arr.length;i++){
        var key = (typeof arr[i]) + arr[i];
        if(!hash[key]){
            result.push(arr[i]);
            hash[key] = true;
        }
    }
    return result;
}
var arr = [‘aa‘,‘bb‘,‘cc‘,‘‘,1,0,‘1‘,1,‘bb‘,null,undefine,null];
console.log(unique(arr));

 

方法三

function unique(arr){
    var n = [this[0]];   //结果数组
    for(var i =1;i<this.length;i++){   //从第二项开始遍历
        //如果当前数组的第i项在当前数组中第一次出现的位置不是i
        //那么表示第i项是重复的,忽略掉。否则存入结果数组
        if(this.indexOf(this[i]) == i)  n.push(this[i]);
    }
    return n;
}
var arr = [‘aa‘,‘bb‘,‘cc‘,‘‘,1,0,‘1‘,1,‘bb‘,null,undefine,null];
console.log(unique(arr));

方法四

function unique(arr){
    this.sort();
    var re = [this[0]];
    for (var i =1;i<this.length;i++){
        if( this[i]  != re[re,length-1] ){
            re.push(this[i]);
        }
    }
}
var arr = [‘aa‘,‘bb‘,‘cc‘,‘‘,1,0,‘1‘,1,‘bb‘,null,undefine,null];
console.log(unique(arr));

先把数组排序,然后比较相邻的两个值。

方法五

//去重(ES6)
function unique2(array){
return Array.from(new Set(array));
}
var arr = [‘aa‘,‘bb‘,‘cc‘,‘‘,1,0,‘1‘,1,‘bb‘,null,undefine,null];
console.log(unique(arr));

数组去重

标签:font   param   span   push   from   return   array   临时   tle   

原文地址:https://www.cnblogs.com/Ella2018/p/10059406.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!