Array.prototype.unique = function()
{
var a = {}; for(var i=0; i<this.length; i++)
{
if(typeof a[this[i]] == "undefined")
a[this[i]] = 1;
}
this.length = 0;
for(var i in a)
this[this.length] = i;
return this;
}
{
var a = {}; for(var i=0; i<this.length; i++)
{
if(typeof a[this[i]] == "undefined")
a[this[i]] = 1;
}
this.length = 0;
for(var i in a)
this[this.length] = i;
return this;
}
<input id="count" value="50000" size="7" maxlength="6">
<input type="button" value="数组初始华" onclick="txt.innerHTML = array_init()" ID=Button1><br>
<input type="button" value="传统循环" onclick="txt.innerHTML += method_for()" ID=Button2>
<input type="button" value="正则匹配" onclick="txt.innerHTML += method_regexp()" ID=Button3>
<div id="txt"></div><SCRIPT LANGUAGE="JavaScript">
var txt = document.getElementById("txt");
var a = new Array();function array_init()
{
var n = parseInt(document.getElementById("count").value);
a.length = 0;
for(var i=0; i<n; i++)
{
a[i] = Math.random() +"";
}
return "数组长度:"+ n;
}function method_for()
{
var n = a.length;
var begin = new Date().getTime();
var b = new Array();
for(var i=0; i<n; i++)
{
if(a[i].indexOf("0.9999")==0)
{
b[b.length] = a[i];
}
}
return ("<br>传统循环法耗时 "+ (new Date().getTime() - begin)
+" 毫秒!检索的结果:<strong title='"+ b.join(" ")
+"'>检索到 "+ b.length +" 个记录!</strong>");
}function method_regexp()
{
var begin = new Date().getTime();
var b = new Array();
var s = a.join("\x0f");
var r = new RegExp().compile("0\\.9999\\d+", "g");
b = s.match(r); s = "";
return ("<br>正则匹配法耗时 "+ (new Date().getTime() - begin)
+" 毫秒!检索的结果:<strong title='"+ b.join(" ")
+"'>检索到 "+ b.length +" 个记录!</strong>");
}
</SCRIPT>
{
var begin = new Date().getTime();
var b = new Array();
var s = a.join("\x0f");
var r = new RegExp().compile("0\\.9999\\d+", "g");
b = s.match(r); s = "";
return ("<br>正则匹配法耗时 "+ (new Date().getTime() - begin)
+" 毫秒!检索的结果:<strong title='"+ b.join(" ")
+"'>检索到 "+ b.length +" 个记录!</strong>");
}
</SCRIPT>
http://blog.csdn.net/hbhbhbhbhb1021/archive/2005/10/28/518390.aspx
<script>
a = [];
o = document.ucp_depotin['article_coding[]'];
for(i=0; i<o.length; i++) {
v = o[i].value;
if(! a[v]) a[v] = 0;
a[v]++;
if(a[v] > 1)
alert('有重复'+v+':'+a[v]);
}
</script>注意,无论把数组连接成串时的效率有多高。但是对象数组是不能简单的join的,遍历总是少不了的
变换一下思维,就可以把复杂的问题简单化