js 数组去重方法总结

原创
2015/11/17 18:20
阅读数 89

方法一:用到js内置的indexOf方法

Array.prototype.unique = function(){
    var result = [];
    for(var i=0,ci;ci=this[i++];){
        if(result.indexOf(ci) == -1) result.push(ci);
    }
}

方法二:用到hash表,要求数组元素值只能为字符

Array.prototype.unique=function(){
	for(var i=0,temp={},result=[],ci;ci=this[i++];){
		if(temp[ci])continue;
		temp[ci]=1;
		result.push(ci);
	}
	return result;
}

方法二中的hash查找比indexOf方法遍历数组快的多,但应用场景有限

方法三:用sort先对数组元素排序

Array.prototype.unique = function(){
    this.sort();
    var result = [], end = 0;
    result.push(this[0]);
    for(var i=0,ci;ci=this[i++];){
        if(ci != result[end]){
            result.push(ci);
            end++;
        }
    }
    return result;
}




展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
2 收藏
0
分享
返回顶部
顶部