LoginSignup
0
4

More than 5 years have passed since last update.

【Ruby】 eachメソッドeach_with_indexの使い方

Posted at

この記事ではeachメソッドで使用頻度の高いeach_with_index
について書いていきます。

この記事が参考になりそうな人

  • eachメソッドがそもそもわからないという人
  • each_with_indexがわからないという人

そもそもeachメソッドとは

eachメソッド複数のオブジェクトから値を一つづつ取り出すことができるメソッドです。

each文を使ってみる

複数のオブジェクトmucicsを作り、rock, pops, jazz, classicを一つづつ取り出してみます。

sample.rb
musics = ["rock", "pops", "jazz", "classic"]
musics.each do|music|
 puts music
end
#musicsの左から順に出力される
=>rock
=>pops
=>jazz
=>classic

musicsの中から一つづつ値を取り出すことができました。
ちなみに2行目の|music|は変数名です。
まずmusicsから取り出したrock|music|に入り、3行目で出力されます。それがpopsjazzclassicという具合にオブジェクトの値がなくなるまで処理が繰り返されます。

each_with_index を使ってみる

先ほどのeachに加えて、要素番号(インデックス)も併せて取り出せるのがeach_with_indexです。
eachメソッドと似ていますが、要素番号を代入する変数を新たに用意するためブロック変数がeachメソッドより1つ多くなります。
(※配列オブジェクトがわからない方はこちらの記事を読んでみてください。)

sample.rb
musics = ["Rock", "pops", "jazz", "classic"]
musics.each_with_index do |music, i|
  puts "#{i}: #{music}"
end
#要素と要素番号が併せて出力される
=> 0: rock
=> 1: pops
=> 2: jazz
=> 3: classic

2行目のブロック変数|i|に要素番号が入り、3行目で出力されています。

まとめ

  • eachメソッドは複数のオブジェクトを一つづつ取りだせる。
  • each_with_indexは要素と要素番号を併せて取り出せる。
0
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
4