Rubyのeachメソッドの使い方
Rubyのeachメソッドは、配列やハッシュなどのコレクションに対して繰り返し処理を行うためのメソッドです。今回は、eachメソッドの使い方を10の例を用いて解説していきます。
1. 配列の要素を一つずつ表示する
まず最初に、配列の全ての要素を順番に表示する基本的な使い方から見ていきましょう。
1 2 3 4 |
array = [1, 2, 3, 4, 5] array.each do |num| puts num end |
出力結果
1
2
3
4
5
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題825_20230315133655-300x300.png)
KindleUnlimited会員であれば、全ての本をご覧頂けます。 配列、イテレータ、ブロックを理解すれば、Rubyプログラミングの世界が変わる 第1版
![](https://csharpprogram.com/wp-content/uploads/2023/03/Ruby1(枠あり)-188x300.jpg)
2. 配列の各要素に2を掛ける
eachメソッドは、各要素に対して何かしらの処理を行う場合にも使います。以下の例では、配列の各要素に2を掛けた結果を表示しています。
1 2 3 4 |
array = [1, 2, 3, 4, 5] array.each do |num| puts num * 2 end |
出力結果
2
4
6
8
10
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題825_20230315133712-300x300.png)
3. 配列の要素とそのインデックスを表示する
eachメソッドには、配列の要素だけでなく、そのインデックスも一緒に取得することができます。これは、each_with_indexメソッドを使用します。
1 2 3 4 |
array = ["Apple", "Banana", "Cherry"] array.each_with_index do |item, index| puts "#{index}: #{item}" end |
出力結果
0: Apple
1: Banana
2: Cherry
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題824_20230225215240-300x300.png)
4. ハッシュのキーと値を表示する
eachメソッドは、ハッシュに対しても使用できます。このとき、ブロックにはキーと値の2つの変数を渡します。
1 2 3 4 |
hash = { "Apple" => "Red", "Banana" => "Yellow", "Cherry" => "Red" } hash.each do |key, value| puts "#{key}: #{value}" end |
出力結果
Apple: Red
Banana: Yellow
Cherry: Red
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題825_20230315133637-300x300.png)
5. ハッシュのキーだけを表示する
ハッシュのキーだけを取得したい場合は、keysメソッドを使ってからeachを使用します。
1 2 3 4 |
hash = { "Apple" => "Red", "Banana" => "Yellow", "Cherry" => "Red" } hash.keys.each do |key| puts key end |
出力結果
Apple
Banana
Cherry
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題825_20230315133655-300x300.png)
6. ハッシュの値だけを表示する
同様に、ハッシュの値だけを取得したい場合は、valuesメソッドを使います。
1 2 3 4 |
hash = { "Apple" => "Red", "Banana" => "Yellow", "Cherry" => "Red" } hash.values.each do |value| puts value end |
出力結果
Red
Yellow
Red
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題825_20230315133712-300x300.png)
7. 文字列の各文字を表示する
文字列に対してもeachメソッドを使用できます。これにより、文字列の各文字に対する操作が可能です。
1 2 3 4 |
string = "Hello" string.each_char do |char| puts char end |
出力結果
H
e
l
l
o
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題824_20230225215240-300x300.png)
8. 範囲オブジェクトを利用する
eachメソッドは、範囲オブジェクト(Range)に対しても使用できます。以下の例では、1から5までの範囲の全ての数値を表示しています。
1 2 3 |
(1..5).each do |num| puts num end |
出力結果
1
2
3
4
5
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題825_20230315133637-300x300.png)
9. 条件に合う要素だけを選択する
eachメソッドと組み合わせて使うと便利なメソッドの一つに、selectメソッドがあります。以下の例では、配列の要素のうち偶数だけを選択しています。
1 2 3 4 5 6 7 |
array = [1, 2, 3, 4, 5] even_numbers = array.select do |num| num.even? end even_numbers.each do |num| puts num end |
出力結果
2
4
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題825_20230315133655-300x300.png)
10. 各要素に対する処理の結果を新しい配列として取得する
最後に、mapメソッドを紹介します。これは、各要素に対する処理の結果を新しい配列として取得します。
1 2 3 4 5 6 7 |
array = [1, 2, 3, 4, 5] new_array = array.map do |num| num * 2 end new_array.each do |num| puts num end |
出力結果
2
4
6
8
10
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題825_20230315133712-300x300.png)
まとめ
最後にeachメソッドについてのまとめです。
まとめ
- eachメソッドはRubyの強力な繰り返し処理のツールで、配列やハッシュ、文字列、範囲など、さまざまなオブジェクトに対して使用できます。
- ブロックを使って、各要素に対する処理を定義します。
- selectメソッドやmapメソッドと組み合わせることで、更に強力な操作が可能になります。
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題825_20230315133637-300x300.png)