js高效率数组去重


为数组对象添加数组去重方法,并且返回删除的数组元素:

方法1:

Array.prototype.clearRedurance=function(){

var newArray=[],//
redurance=[],//
i,//
length;

this.sort(function(a,b){
return a>b ? 1:(a<b ? -1:0);
});//数组先排序
newArray.push(this[0]);

for(i=0,length=this.length;i<length;i++){
if(newArray[newArray.length-1]!=this[i]){
newArray.push(this[i]);
}else{
redurance.push(this[i]);
this.splice(i,1);
i--;
length--;
}

}
return redurance;

}
算法事件复杂度为O(n)。


方法2:利用hash

Arrary.prototype.clearReduance=function(){

var ret=[],
i=0,//
length=this.length,
item,//
key,//
hash={};
for(;i<length;i++){
item=this[i];
key=typeof(item)+item;
if(hash[key]!=1){
ret.push(item);
hash[key]=1;
}else{
ret.push(this[i]);
this.splice(i,1);
i--;
length--;
}
}

return ret;
}





智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告