>웹 프론트엔드 >JS 튜토리얼 >javascript 숫자 array_javascript 기술에서 중복 항목을 제거하기 위한 구현 코드

javascript 숫자 array_javascript 기술에서 중복 항목을 제거하기 위한 구현 코드

WBOY
WBOY원래의
2016-05-16 18:12:571147검색
test.htm
复代码 代码如下:



<머리>

배열-제거-반복
<스타일>
.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();

}





Watch.js

复主代码 代码如下:

var Watch = {
결과: [],
guid: -1,
totalTime: 0,
start: function(title){
this.result[ this.guid] = [제목 || this.guid, new Date().getTime()];
},
stop: function(){
var r = this.result[this.guid];
var t = new Date().getTime() - r[1];
this.totalTime = t;
r[1] = t;
if(t>=10000){
alert("이 코드는 실행하는 데 너무 오래 걸립니다. 최적화해야 합니다.");
}
},
보고서: function(parent){
var div = document.createElement("div");
div.style.fontSize = "12px";
var str = [];
str.push("

총 시간:" this.totalTime " ms.

");
for (var i = 0, l = this.result.length; i < l; i ) {
if (this.result[i].length > 1) {
str.push ("

" "" " this.result[i" ][1] "" " " this.result[i][0] "" "

");
}else{
str.push(this.result[i][0]);
}
}
div.innerHTML = str.join("");
부모 = 부모 || 문서.본문;
parent.appendChild(div);
div = null;

this.totalTime = 0;
this.guid = -1;
this.result=[];
},
fns: function(){
var a = 인수;
for (var i = 0, l = a.length; i < l; i ) {
this.start(a[i][0]);
a[i][1]();
this.stop();
}
},
execByTimes: function(fn, times, title){
this.start(title);
while (times--) {
fn();
}
this.stop();
},
print: function(str){
this.result[ this.guid]=[str];
}
}
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.