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();
}
_
doStuff() for i in [0..someCount] by 1
forループのby 1に注意してください。
このコードは、余分な__i
_変数を作成します。それと一緒に暮らすことができない場合は、次を使用します。
_i=0
while i<=someCount
doStuff()
i++
_
以前の回答が機能します。ただし、i
をドロップすると、より適切に生成されます。
_for [0...10]
doStuff()
_
または
_doStuff() for [0...10]
_
他のソリューションは、ループ内で使用するための追加のイテレータ変数i
を追加します。たとえば、doStuff(i)
ですが、 http://coffeescript.org/v1/#ループ :
現在の反復値が必要ない場合は、省略できます。
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]
_)に関する他のコメントの説明に注意してください。