<머리>
배열-제거-반복 <스타일>
.tt{ 배경색:#006699; 높이:3px; 오버플로:숨김;}
<본문>
<스크립트>
if(!console)
{
var console={};
console.log=function(str){alert(str);}
}
Array.prototype.unique1 = function() {
var r = new Array();
레이블:for(var i = 0, n = this.length; i < n; i ) {
for(var x = 0, y = r.length; x < y; x ) {
if(r[x] == this[i]) {
continue label;
}
}
r[r.length] = this[i];
}
r을 반환합니다.
}
Array.prototype.unique2 = function () {
return this.sort().join(",,").replace(/(,|^)([^, ] )(,,2) (,|$)/g,"$1$2$4").replace(/,, /g,",").replace(/,$/,"").split(", ");
}
Array.prototype.unique3 = function() {
var temp = {}, len = this.length;
for(var i=0; i < len; i ) {
var tmp = this[i];
if(!temp.hasOwnProperty(tmp)) {
temp[this[i]] = "맙소사";
}
}
len = 0;
var tempArr=[];
for(var i in temp) {
tempArr[len ] = i;
}
tempArr을 반환합니다.
}
Array.prototype.unique4 = function () {
var temp = new Array();
this.sort();
for(i = 0; i < this.length; i ) {
if( this[i] == this[i 1]) {
continue;
}
온도[temp.length]=this[i];
}
반품 온도;
}
var test=(function()
{
var arr2=[];
for(var i=0;i<2000; i )
{
var t=i;
t=parseInt(Math.random()*2000) 1
arr2[i]=(t.toString());
}
//arr2=["zhoujian","zhou","zhou"]
return function(){
return arr2;//return [1 ,2,3,3];
};
})();
window.onload=function(){
//
Watch.start("비용 시간1:");
var arr= 테스트();
console.log(arr.length );
arr=arr.unique1();
console.log(arr.length);
Watch.stop();
//
Watch.start("비용 시간2:");
arr= 테스트();
console.log(arr.length);
arr=arr.unique2();
console.log(arr.length);
Watch.stop();
//
Watch.start("비용 시간3:");
arr= 테스트();
console.log(arr.length );
arr=arr.unique3();//数组很大时,最快
console.log(arr.length );
Watch.stop();
//
Watch.start("비용 시간4:");
arr= 테스트();
console.log(arr.length);
arr=arr.unique4();
console.log(arr.length);
Watch.stop();
Watch.report();
}