【Ruby】eachメソッドを徹底解説!

Ruby

eachメソッドとは、配列の中身を一つずつ取り出すメソッドです。

eachメソッドの基本構文
1
2
3
配列.each do |変数|
  # 処理
end
irb | eachメソッドの使用例
1
2
3
4
5
6
7
irb(main):001:0> [1,2,3].each do |element|
irb(main):002:1*   puts element
irb(main):003:1> end
1
2
3
=> [1, 2, 3]

eachメソッドの基本的な使い方

この章では、eachメソッドについて基本的な使い方について解説します。

eachメソッドの構文
リンクをコピーしました

配列とは、一つのオブジェクトを複数の値を格納できる便利なものでしたね。
eachメソッドとはその一つ一つ格納されたオブジェクトを取り出すことが出来るメソッドです。

ruby
1
2
3
4
5
6
array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
array.each do |element| # elementという変数に配列の要素が1つずつ格納されます。
  puts element
end
# eachメソッドの返り値
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

eachメソッドの出力値
リンクをコピーしました

shell
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10

一つ一つの値がelementに入ってそのelementを出力しているため、上記の様な返り値になります。

では、このeach文を使うと配列から取り出された一つ一つの値に処理できる事がわかりますね!

eachメソッドでどういうことが出来るかということを確かめるためにfizzbuzzというものを作ってみます!

fizbuzzとは?
リンクをコピーしました

fizzbuzzとは、
3で割り切れる場合はfizz,
5で割り切れる場合はbuzz,
15で割り切れる場合はfizzbuzz
と出力する簡単なプログラミングです。

ではこのfizzbuzzをeachメソッドを使って、実際に書いてみましょう。

eachメソッドの例題
リンクをコピーしました

ruby
1
2
3
4
5
6
7
8
9
10
11
12
array = [*(1..100)]
array.each do |element| # elementという変数に配列の要素が1つずつ格納されます。
  if element % 3 == 0 && element % 5 == 0
    puts 'fizzbuzz'
  elsif element % 3 == 0
    puts 'fizz'
  elsif element % 5 == 0
    puts 'buzz'
  else
    puts element
  end
end

eachメソッドの例題(動画)
リンクをコピーしました

eachメソッド

また、eachメソッドは場合によっては、mapメソッドを使うことで短いコードで置き換えることが出来ます。

詳しくは、mapメソッドの基礎から応用を参考にしてください。

まとめ

eachメソッドとは配列の要素を一つ一つ出していくメソッドです。一つ一つ出した要素に対して処理をすることができます。