<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是什么意思?我在网上查了查也没有明白
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是什么意思?我在网上查了查也没有明白
这个不是我上午给的函数么?
o[v] = 1 就是给hash对应的键值 加上一个标识.
每次循环都判断o[v] !== 1 如果已经存在标识了 就表示存在 就给剔除了.
所以
null != 0是false
null !== 0是true
对于和1比较的对象而言,!==和!=其实就没有差别了
对于JavaScript属性有两种表示方法
o.a === o["a"],换个熟悉点的就是window.document === window["document"]
只是从基本语言的角度说了一下