CoffeeScriptの内包表記を学ぶ

基本

arrayのループにはfor inを、objectsのループにはfor ofを使用する。

players = ["Jorge", "Leandro", "Tanaka"]

for player in players
  console.log player
  
# インデックスを含む場合
for player, index in players
  console.log "#{index}, #{player}"

  
records =
  Jorge: 11
  Leandro: 15
  Tanaka: 13

for key of records
  console.log key

for key, value of records
  console.log "#{key} scored #{value} goals"

より簡潔に記述することも可能。

players = ["Jorge", "Leandro", "Tanaka"]

console.log player for player in players


records =
  Jorge: 11
  Leandro: 15
  Tanaka: 13
  
console.log "#{key} scored #{value} goals" for key, value of records

when文を用いて条件を指定することも可能。

for player, index in players
  if index % 2 == 0
    console.log "#{index}, #{player}"

# when文を使った場合
console.log player for player, index in players when index % 2 == 0

when文を用いて条件と指定した結果を変数に代入する場合は()を使う。

records =
  Jorge: 11
  Leandro: 15
  Tanaka: 13
  
good_players = (key for key, value of records when value >= 15)
# => ["Leandro"]