For loop 如何将JavaScript for循环转换为CoffeeScript? (i=0;i
这就是我想要转换为CoffeeScript的JavaScript代码For loop 如何将JavaScript for循环转换为CoffeeScript? (i=0;i,for-loop,coffeescript,For Loop,Coffeescript,这就是我想要转换为CoffeeScript的JavaScript代码 for (i = 0; i < 10; i++) { doStuff(); } 介绍页对此进行了说明: 由JP编辑/更新: 确切的翻译是: doStuff() for i in [0 .. 9] 您需要小心使用“.”vs“…”,例如: doStuff() for i in [0...10] 所以你认为,没问题。。。我会一直循环直到数到1 count = 0 doStuff() for i in [0..
for (i = 0; i < 10; i++) {
doStuff();
}
介绍页对此进行了说明:
由JP编辑/更新:
确切的翻译是:
doStuff() for i in [0 .. 9]
您需要小心使用“.”vs“…”,例如:
doStuff() for i in [0...10]
所以你认为,没问题。。。我会一直循环直到数到1
count = 0
doStuff() for i in [0..count] #still executes once!
直译:
count = 0
doStuff() for i in [0..count-1] #executes twice!! '0' and then '-1'
标记的答案在功能上是正确的,但生成的代码与原始javascript不匹配。
正确的方法(阅读,最接近以下javascript的方法)
以前的答案很有用。但是,删除
i
会更好地为我生成:
i=0
while i<=someCount
doStuff()
i++
或
其他解决方案添加了一个额外的迭代器变量i
,供您在循环内部使用,例如doStuff(i)
,但是来自:
如果不需要当前迭代值,可以忽略它:
browser.closeCurrentTab()用于[0…计数]
具体地说,[0…10]中i的翻译为(i=j=0;j<10;i=++j)
,而[0…10]的翻译为(i=0;i<10;i++)
请注意其他评论中关于2点与3点的讨论(
[0..9]
与[0…10]
)。对,或者按字面翻译,表示[0…10]
中的i。两个点(。
)表示“最多并包括”,而三个点(…
)表示“最多但不包括”。这是一个Ruby-ism。范围运算符源于对Ruby产生重大影响的。不确定是Perl发明的还是从另一种古老的语言继承的。@JP如果在循环中引入一个变量,代码的行为将不同。例如,它将确定运行时计数器应该走哪条路。0 .. 0应执行一次。0 .. -1应该执行两次。@Bengt完全正确。我认为修改答案很重要,这样互联网搜索者就不会感到困惑。另外,CoffeeScript文档对此不清楚。我被它烫伤了,我不想要别人。我想我的其他例子为人们解释了这一点。试一下
for i in [0...someCount]
doStuff()
for (i = 0; i < 10; i++) {
doStuff();
}
i=0
while i<=someCount
doStuff()
i++
for [0...10]
doStuff()
doStuff() for [0...10]