javascript问题

ziyyixuantang 2009-12-31 10:12:08
<script type="text/javascript">
var uniq = function (arr) {
var a = [],
o = {},
i,
v,
len = arr.length;
if (len < 2) {
return arr;
}
for (i = 0; i < len; i++) {
v = arr[i];
if (o[v] !== 1) {
a.push(v);
o[v] = 1;
}
}
return a;
}
var arr = [9,1,'3',8,7,7,6,6,5,7,8,8,7,4,3,1];
alert(uniq(arr));

</script>


请问 if (o[v] !== 1) {
a.push(v);
o[v] = 1;
}
中的o[v] !== 1和o[v] = 1是什么意思?我在网上查了查也没有明白
...全文
62 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZhangYaoxing 2010-01-01
  • 打赏
  • 举报
回复
!==和!=的区别是!==不会进行类型转换,而!=会。
所以
null != 0是false
null !== 0是true
对于和1比较的对象而言,!==和!=其实就没有差别了
对于JavaScript属性有两种表示方法
o.a === o["a"],换个熟悉点的就是window.document === window["document"]
只是从基本语言的角度说了一下
东大坡居士 2010-01-01
  • 打赏
  • 举报
回复
学习~
zhangshaolongjj 2009-12-31
  • 打赏
  • 举报
回复
学习了
Click_Me 2009-12-31
  • 打赏
  • 举报
回复

这个不是我上午给的函数么?
o[v] = 1 就是给hash对应的键值 加上一个标识.
每次循环都判断o[v] !== 1 如果已经存在标识了 就表示存在 就给剔除了.
xmliy 2009-12-31
  • 打赏
  • 举报
回复
为了剔除重复的数据
相关推荐
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2009-12-31 10:12
社区公告
暂无公告