2012-10-14 52 views

回答

8

我返回索引为字符串,如果它们解析为一个整数,它会工作

a = [ 1, 2, 3 ] 

for i of a 
    if parseInt(i) == 0 
     console.log a[i] 
+0

是的,你是对的!我只是在几分钟之前就明白了...... LOL谢谢:) – x1a0

+1

@ZhangXiao但是kurmiau的回答是在你的之前发布的。所以,我建议删除你自己的答案,并接受这个答案。 –

+1

@RobW你是对的。我去做 :) – x1a0

1

这是因为i只会是1,2或3,如您遍历在a的项目,而不是索引号。

这工作你上述方式:

a = [ 1, 2, 3 ] 

for i in [0..a.length] 
    if i == 0 
     console.log a[i] 
+0

嗨,谢谢你的回答:) 但是我在循环索引。注意我正在使用''''但是'in'。 – x1a0

+0

@ZhangXiao:你不应该使用''来遍历数组,使用'in'来遍历数组。 –

+0

@ muistooshort谢谢。我明白不同之处,在这种情况下,我使用'of' :) – x1a0

1

,则不应使用of来循环一个数组,你应该使用in。从fine manual

理解还可以用于迭代对象中的键和值。使用of表示理解对象的属性而不是数组中的值。

yearsOld = max: 10, ida: 9, tim: 11 

ages = for child, age of yearsOld 
    "#{child} is #{age}" 

所以你要遍历性质的数组对象,而不是它的索引。

,您应该使用下列内容之一的循环:

for e, i in a 
    if(i == 0) 
     console.log(a[i]) 

for e, i in a 
    console.log(e) if(i == 0) 

console.log(e) for e, i in a when i == 0 

#... 

或者,因为你有一个阵列和数字指标,为什么不跳过循环,并得到正确的一点是:

console.log(a[0])