Ruby on Railsでhashと繰り返し「each」を使う方法を現役エンジニアが解説【初心者向け】

初心者向けにRuby on Railsでhashと繰り返し「each」を使う方法について現役エンジニアが解説しています。eachは、hashの要素の数だけ処理を繰り返し実行するためのメソッドです。hashはキー名と値を持つ集合です。Ruby on Railsでhashに対してeachを使ってみましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事が4,000以上あります。現役エンジニアの方はこちらをご覧ください。

Ruby on Railsでhashと繰り返し「each」を使う方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

Rubyについてそもそもよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Ruby講座の内容をもとに紹介しています。

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Ruby on Railsでhashと繰り返し「each」を使う方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

Ruby on Railsのeachとは?

eachは、hashの要素の数だけ処理を繰り返し実行するためのメソッドです。hashの全ての要素を取り出して同じ処理を実行したい時に使います。

hashとeachの違いとは

前述の通り、eachはメソッドです。hashはキーと値をペアで要素として持つ集合です。

eachはhash用に用意されたメソッドです。eachを使うと、hashから要素を順に取り出すことができます。取り出した要素に対して行いたい処理(ブロック)を記述することができます。eachは、hashの要素がなくなるまで繰り返されます。

eachは配列にも使えますが、ここではhashに使う方法をご紹介します。

[PR] Rubyのプログラミングで挫折しない学習方法を動画で公開中

eachを使う方法

eachは、以下のようにして使います。

対象のhash.each do |k, v|
 [行いたい処理(ブロック)]
end

あるいは

対象のhash.each {|k, v| [行いたい処理(ブロック)]}

とします。書き方が違うだけで同じ処理となります。

実際に書いてみよう

fruits = { 'Apple' => 150, 'Banana' => 100, 'Orange' => 200, 'Peach' => 300 }
fruits.each do |k, v|
  puts "#{k} : #{v}"
end

このプログラムを実行すると、

Apple : 150
Banana : 100
Orange : 200
Peach : 300

が表示されます。hashの要素を順に取り出して、キーと値をそれぞれ表示しています。

hashの要素を配列として取り出す

eachの対象を変えるとhashの要素を配列として取り出すこともできます。

fruits = { 'Apple' => 150, 'Banana' => 100, 'Orange' => 200, 'Peach' => 300 }
fruits.each do |a|
  puts "#{a}"
end

このプログラムを実行すると、

["Apple", 150]
["Banana", 100]
["Orange", 200]
["Peach", 300]

が表示されます。hashの要素が順に、キーと値の配列として取り出されます。

each_pairメソッド

each_pairメソッドという名前のメソッドもあります。eachメソッドの別名です。同じことができます。

fruits.each_pair do |k, v|
  puts "#{k} : #{v}"
end

 

まとめ

eachは、hashから順にキーと値のペアを取り出して処理をするときに使います。これを機にhashを効率よく処理していきましょう。

筆者プロフィール

伊藤広明(いとうひろあき)

1990年代からソフトウェア開発を仕事としてはじめ、2000年ごろからWEBエンジニアの仕事にも従事。
世の中で末長く使ってもらえるシステム開発が信条。後進の育成にも力を入れている。

作れるもの:Webシステム、スマホアプリ
書ける言語: Ruby・PHP・Python・Java・Swift・C#・C/C++・JavaScriptなど
経験があるフレームワーク: Laravel・Ruby on Rails・Apache Strutsなど

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

TechAcademyでは、初心者でも最短4週間で、Ruby on Railsを使ったプログラミングを習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。