第一種:耗時最長,用了雙重迴圈
array.prototype.unique1 = function
() }
r[r.length] = this[i];
}return r;
}
第二種:用了正規表示式
array.prototype.unique2 = function ()
第三種:用了hasownproperty
array.prototype.unique3 = function
() , len = this.length;
for(var i=0; i < len; i++)
}len = 0;
var temparr=;
for(var i in temp)
return temparr;
}
第四種:先排序,再比較相鄰的
array.prototype.unique4 = function
() temp[temp.length]=this[i];
}return temp;
}
第五種:用了hash,耗時最短
array.prototype.unique5 = function
() ;
for(var i=0;i}
return result;
}
測試方法:
function
testarr
() var d1=new
date().gettime();
arr.unique1();
console.log("unique1:執行了 "+(new
date().gettime()-d1)+" ms");
//unique1:執行了 4516 ms
d1=new
date().gettime();
arr.unique2();
console.log("unique2:執行了 "+(new
date().gettime()-d1)+" ms");
//unique2:執行了 153 ms
d1=new
date().gettime();
arr.unique3();
console.log("unique3:執行了 "+(new
date().gettime()-d1)+" ms");
//unique3:執行了 60 ms
d1=new
date().gettime();
arr.unique4();
console.log("unique4:執行了 "+(new
date().gettime()-d1)+" ms");
//unique4:執行了 95 ms
d1=new
date().gettime();
arr.unique5();
console.log("unique5:執行了 "+(new
date().gettime()-d1)+" ms");
//unique5:執行了 16 ms
}testarr();
js陣列去重五種方法
今天來聊一聊js陣列去重的一些方法,包括一些網上看到的和自己總結的,總共5種方法 es5 這種方法最簡單最直觀,也最容易理解,如下 var arr 2,8,5,0,5,2,6,7,2 var newarr for var i 0 i arr.length i console.log newarr 結...
js陣列去重五種方法
今天來聊一聊js陣列去重的一些方法,包括一些網上看到的和自己總結的,總共5種方法 es5 這種方法最簡單最直觀,也最容易理解,如下 1 var arr 2,8,5,0,5,2,6,7,2 2 var newarr 3 for var i 0 i arr.length i 7 8 console.lo...
js 陣列去重3種方法
js陣列去重的三種常用方法總結 第一種是比較常規的方法 思路 1.構建乙個新的陣列存放結果 2.for迴圈中每次從原陣列中取出乙個元素,用這個元素迴圈與結果陣列對比 3.若結果陣列中沒有該元素,則存到結果陣列中 複製 如下 array.prototype.unique1 function if re...