js 陣列去重複項的五種方法比較

2021-08-19 08:36:25 字數 1705 閱讀 6553

第一種:耗時最長,用了雙重迴圈

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...