for (i = 0; i < 10; i++) {
doStuff();
}
这是我想要转换成CoffeeScript的JavaScript代码。
for (i = 0; i < 10; i++) {
doStuff();
}
这是我想要转换成CoffeeScript的JavaScript代码。
doStuff() for i in [0 .. 9]
这在介绍页面上有解释:http://coffeescript.org/#loops
由JP编辑/更新:
精确的翻译如下:
doStuff() for i in [0...10]
在编程中,需要注意 ".." 和 "..." 的区别,例如:
count = 0
doStuff() for i in [0..count] #still executes once!
所以你认为,没问题...我只需要循环直到计数-1!
count = 0
doStuff() for i in [0..count-1] #executes twice!! '0' and then '-1'
字面翻译:
for (var i = 0; i < someCount; ++i)
doStuff()
是
for i in [0...someCount]
doStuff()
这个被标记的答案在功能上是正确的,但生成的代码与原始的JavaScript不匹配。
正确的方式(即最接近以下JavaScript的方式)
for (i = 0; i < 10; i++) {
doStuff();
}
是这样的,在for循环中有一个 by 1
的设置。
如果你不能接受多出来的 _i
变量,那么可以使用以下代码:
i=0
while i<=someCount
doStuff()
i++
之前的回答是正确的。然而,对我来说去掉i
会更好:
for [0...10]
doStuff()
或者
doStuff() for [0...10]
doStuff(i)
,但是从http://coffeescript.org/v1/#loops得知:
如果您不需要当前迭代值,则可以省略它:
browser.closeCurrentTab() for [0...count]
详细来说,for i in [0...10]
的翻译是for (i = j = 0; j < 10; i = ++j)
,而for [0...10]
的翻译是for (i = 0; i < 10; i++)
。
请注意其他评论中关于2个点与3个点([0..9]
与[0...10]
)的讨论。