★★这段代码是什么意思?★★

mstnsc 2010-10-13 05:55:47

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函数添加详细的注释!谢谢!
...全文
82 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mstnsc 2010-10-14
  • 打赏
  • 举报
回复
明白了
谢谢!!
zhangshaolongjj 2010-10-13
  • 打赏
  • 举报
回复
function unique(arr) {
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]这样的数据,正常情况下应该认为是不同的,但这段代码没作处理!
hoojo 2010-10-13
  • 打赏
  • 举报
回复
function unique(arr) {
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;
}

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧