var aa=[12,2,1,3,4,5,2,3,1,56]; //用于测试的数组//用于去掉数组中重复的元素
function unique(arr) {
var result = [], hash = {};
for (var i = 0, elem; (elem = arr[i]) != null; i++) {
if (!hash[elem]) {
result.push(elem);
hash[elem] = true;
}
}
return result;
}//下面是测试的代码
var bb=unique(aa);
for(var a in bb){
document.write(bb[a]+"<br>");
}请高手们给unique函数添加详细的注释!谢谢!
解决方案 »
- select onchange 问题
- text求值问题!!!!!!
- javascript 能否实现类似java的UUID的功能?
- VB+JAVASCRIPT问题
- 请用过【eWebEditor】的近来--------拿分了
- 关于js引用js的问题,高手进
- 关于XMLHTTP的乱码问题,狂郁闷!
- 怎样作出如图http://www.tunnel.net.cn/a.jpg样子?
- 怎么可以不点鼠标而在用户输完了所有的内容后,一回车默认的button被触发
- 在线等待——急
- 如何把IE中类似http://my%20test%20site的URL改称http://my test site
- ext.data.HttpProxy的问题
var result = [],/*定义一个数组*/ hash = {};/*对象*/
for (var i = 0, elem; (elem = arr[i]) != null; i++) {//如果arr[i]不是null就循环
if (!hash[elem]) {//如果hash对象中没有elem属性(未定义)就执行下面的
result.push(elem);//添加到数组中
hash[elem] = true;//设置hash的当前elem属性是true值
}
}
return result;
}
var result = [];//存放过滤后的结果。
var hash = {};//用map把不重复的数据放进去,当以后再有相同数据的话,就不会再往result里放了。
for (var i = 0, elem; (elem = arr[i]) != null; i++) {
if (!hash[elem]) {//当hash里没有此(elem)时,向result里放。
result.push(elem);
hash[elem] = true;//设置此元素已经存放过的标志
}
}
return result;
}
不过这段代码没有处理["1", 1]这样的数据,正常情况下应该认为是不同的,但这段代码没作处理!