- 主题:JavaScript的for循环是我理解错了吗?
for(var attr in obj) 或者 for(var elem in array) 两个有时候JavaScript解释器是不是会弄错。。我这种有个测试代码:
Array.prototype.fish = function(){
console.debug("fish is here.");
}
l = [1, 2, 3, 4];
for(var i in l){
console.debug(i);
}
与我的想象差距甚远。
--
FROM 117.30.55.*
我这运行正常啊:
0
1
2
3
fish
【 在 hgoldfish (老鱼) 的大作中提到: 】
: for(var attr in obj) 或者 for(var elem in array) 两个有时候JavaScript解释器是不是会弄错。。我这种有个测试代码:
: Array.prototype.fish = function(){
: console.debug("fish is here.");
: ...................
--
FROM 59.175.226.*
我的意思是,遍历数组,我的期望是只输出数字,不想输入最后面的那个fish.
【 在 ottffsse (nothing) 的大作中提到: 】
: 我这运行正常啊:
: 0
: 1
: ...................
--
FROM 117.30.55.*
array 也是 object 啊
【 在 hgoldfish 的大作中提到: 】
: 我的意思是,遍历数组,我的期望是只输出数字,不想输入最后面的那个fish.
:
--
FROM 221.219.149.*
我能理解这种现象,但是感觉javascript的这种设计很蛋疼。因为现在有些工具会在Array.prototype里面做文章,这直接让 for(elem in array) 这种形式作废了。
【 在 tcper (知心哥哥) 的大作中提到: 】
: array 也是 object 啊
--
FROM 117.30.55.*
用 hasOwnProperty 啊
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 我能理解这种现象,但是感觉javascript的这种设计很蛋疼。因为现在有些工具会在Array.prototype里面做文章,这直接让 for(elem in array) 这种形式作废了。
--
FROM 118.195.70.*
for(elem in array)
这个形式本来就比for i慢吧,一般我也不用
lodash这类库虽然在Array.prototype里搞,但是也提供了遍历方法啊
【 在 hgoldfish 的大作中提到: 】
: 我能理解这种现象,但是感觉javascript的这种设计很蛋疼。因为现在有些工具会在Array.prototype里面做文章,这直接让 for(elem in array) 这种形式作废了。
:
--
FROM 221.219.149.*
遍历数组就不要用for in
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 我的意思是,遍历数组,我的期望是只输出数字,不想输入最后面的那个fish.
--
FROM 119.255.59.*
for in的循环 都要加一层hasOwnProperty 验证的
--
FROM 220.181.38.*
太麻烦了。所以我现在都用for(i<arrry.length)来循环。
【 在 a316783812 (woniuppp) 的大作中提到: 】
: for in的循环 都要加一层hasOwnProperty 验证的
--
FROM 59.57.165.*