Coffeescript 为什么';这个咖啡剧本打印出来了吗?
因此,当索引为0时,我想将其打印出来:Coffeescript 为什么';这个咖啡剧本打印出来了吗?,coffeescript,Coffeescript,因此,当索引为0时,我想将其打印出来: a = [ 1, 2, 3 ] for i of a if i == 0 console.log a[i] 但没有产出 i==0从来都不是真的…这是因为i在a中的项目上循环时只会是1、2或3,而不是索引号 这与您上面描述的工作方式相同: a = [ 1, 2, 3 ] for i in [0..a.length] if i == 0 console.log a[i] 我以字符串的形式返回索引,如果
a = [ 1, 2, 3 ]
for i of a
if i == 0
console.log a[i]
但没有产出
i==0
从来都不是真的…这是因为i
在a
中的项目上循环时只会是1、2或3,而不是索引号
这与您上面描述的工作方式相同:
a = [ 1, 2, 3 ]
for i in [0..a.length]
if i == 0
console.log a[i]
我以字符串的形式返回索引,如果您将它们解析为整数,那么它就可以工作了
a = [ 1, 2, 3 ]
for i of a
if parseInt(i) == 0
console.log a[i]
您不应该使用
of
在数组上循环,应该使用in
。从:
理解也可用于迭代对象中的键和值。使用的表示对对象属性的理解,而不是数组中的值
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])
嗨,谢谢你的回答:)但是我在索引上循环。请注意,我使用的是of
但in
中的@ZhangXiao:您不应该使用of
来循环数组,请使用in
来循环数组。@muistooshort谢谢。我理解其中的区别,在这种情况下,我使用了的:)@muistooshort-Oh。。。我没有意识到这一点。你能解释一下原因吗?在本例中,我要做的是迭代一个数组,对于第一个元素,我想做一些特殊的事情。是的,你说得对!几分钟前我自己就知道了。。。哈哈,还是谢谢你:)@ZhangXiao,但是kurmiau的答案在你之前就已经发布了。所以,我建议删除你自己的答案,并接受这一个。