以下に最も簡潔に相当するCoffeescriptは何ですか?
# Ruby
3.times { puts 'hi' }
?
私が考えることができる最高のものは次のとおりです。
# coffeescript
for n in [1..3]
console.log 'hi'
console.log 'hi' for [1..3]
0
も正しく処理するには:
console.log 'hi' for [1..n] if n
またはプロトタイプの魔法で:
Number::times = (fn) ->
do fn for [1..@valueOf()] if @valueOf()
return
3.times -> console.log 'hi'
Number
プロトタイプを変更するとグローバルな影響があるため、2番目の方法は推奨されないことに注意してください。
編集:@BrianGenisioのコメントに従って変更(.prototype.
-> ::
)
編集2:0の処理を修正、@ Brandonに感謝
すでに nderscore.js をCoffeeScriptと一緒に使用しているので:
_(3).times -> console.log('hi')
JavaScript配列(少なくとも最新のもの)には forEach
メソッドがあり、CoffeeScript [1..3]
範囲は配列であるため、次のことができます。
[1..3].forEach -> console.log 'hi'
ただし、警告が1つあります。これは、[1..n]
のn
が大きい場合、便利な表記を得るためだけに大きな配列を作成するため、ブラウザでは少し難しいかもしれません。ただし、n
が小さい場合は、配列を構築するオーバーヘッドはそれほど重要ではありません。
console.log 'hi' for[]in length:3
使用 lodash :
_.times 3, -> console.log 'hi'