javascript数字数组去重复项的实现代码_Javascript教程-查字典教程网
javascript数字数组去重复项的实现代码
javascript数字数组去重复项的实现代码
发布时间:2016-12-30 来源:查字典编辑
摘要:test.htm复制代码代码如下:array-remove-repeate.tt{background-color:#006699;heig...

test.htm

复制代码 代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>array-remove-repeate</title>

<style>

.tt{ background-color:#006699; height:3px; overflow:hidden;}

</style>

</head>

<body>

<div></div>

<div id="result"></div>

<script>

if(!console)

{

var console={};

console.log=function(str){alert(str);}

}

Array.prototype.unique1 = function () {

var r = new Array();

label: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];

}

return 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]] = "my god";

}

}

len = 0;

var tempArr=[];

for(var i in temp) {

tempArr[len++] = i;

}

return 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[temp.length]=this[i];

}

return temp;

}

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("Cost times1:");

var arr= test();

console.log(arr.length );

arr=arr.unique1();

console.log(arr.length);

Watch.stop();

//

Watch.start("Cost times2:");

arr= test();

console.log(arr.length);

arr=arr.unique2();

console.log(arr.length);

Watch.stop();

//

Watch.start("Cost times3:");

arr= test();

console.log(arr.length );

arr=arr.unique3();//数组很大时,最快

console.log(arr.length );

Watch.stop();

//

Watch.start("Cost times4:");

arr= test();

console.log(arr.length);

arr=arr.unique4();

console.log(arr.length);

Watch.stop();

Watch.report();

}

</script>

</body>

</html>

Watch.js

复制代码 代码如下:

var Watch = {

result: [],

guid: -1,

totalTime: 0,

start: function(title){

this.result[++this.guid] = [title || 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("This code takes too long to run,you should optimizate them.");

}

},

report: function(parent){

var div = document.createElement("div");

div.style.fontSize = "12px";

var str = [];

str.push("<p><b>The total times:</b><span>" + this.totalTime + "</span> ms.</p>");

for (var i = 0, l = this.result.length; i < l; i++) {

if (this.result[i].length > 1) {

str.push("<p>" + "<span>"+"<span + (this.totalTime === 0 ? this.totalTime : parseInt(200 * this.result[i][1] / this.totalTime)) + "px; display:inline-block;'>"+this.result[i][1]+"</span>"+"</span> <span>" + this.result[i][0] + "</span>" + "</p>");

}else{

str.push(this.result[i][0]);

}

}

div.innerHTML = str.join("");

parent = parent || document.body;

parent.appendChild(div);

div = null;

this.totalTime = 0;

this.guid = -1;

this.result=[];

},

fns: function(){

var a = arguments;

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];

}

}

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Javascript教程学习
    热门Javascript教程学习
    编程开发子分类