Rubyでハッシュオブジェクトからキーや値を取り出す方法【初心者向け】

初心者向けにRubyでハッシュオブジェクトからキーや値を取り出す方法について解説しています。まず最初にハッシュとはどういうものかについて学びます。次に実際にハッシュオブジェクトを作成して、そこからキーと値を取り出してみましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

Rubyでハッシュオブジェクトからキーや値を取り出す方法について解説します。

Rubyについてそもそもよく分からないという方は、Rubyとは何なのか解説した記事をまずご覧ください。

 

なお本記事は、TechAcademyのWebアプリケーションオンラインブートキャンプの内容をもとに紹介しています。

 

田島悠介

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

大石ゆかり

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

田島悠介

ハッシュオブジェクトからキーや値を取り出す方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

ハッシュオブジェクトからキーを取り出す方法

ハッシュはHashクラスのオブジェクトでキーとを組み合わせたデータを管理します。

ハッシュオブジェクトでキーだけを取り出したい場合は、Hashクラスのkeysメソッドを使います。

“オブジェクト.keys”

でキーを取り出すことができます。

 

ハッシュオブジェクトから値を取り出す方法

続いて、ハッシュオブジェクトから値だけを取り出したい場合です。Hashクラスのvaluesメソッドを使います。

“オブジェクト.values”

で値を取り出すことができます。

 

ハッシュオブジェクトからキーと値を取り出す方法

今度はキーと値を両方取り出す場合です。こちらはHash クラスのto_aメソッドを使います。

“オブジェクト.to_a”

でキーと値の両方を取り出せます。

 

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

実際に書いてみよう

さて、ここからは実際にコードを書いてみましょう。まずハッシュオブジェクトを作成してみましょう!!

hash = {}  #=> まずは空のハッシュを作成
hash["経済学"] = 80  #=>キーが経済学 値は80
hash["財政学"] = 70  #=> キーは財政学 値は70
hash["会計学"] = 60  #=> キーは会計学 値は60

p hash  #=> {"経済学"=>80, "財政学"=>70, "会計学"=>60}

ハッシュオブジェクトが作成できましたね!!

こちらは以下の場合でも同じハッシュオブジェクトが作成できます。

hash = {"経済学" => 80, "財政学" => 70, "会計学" => 60}
p hash  #=> {"経済学"=>80, "財政学"=>70, "会計学"=>60}

 

どちらでも同じハッシュですのでお好きな方で作成してみてください。

 

さて、ここから、このハッシュオブジェクトを使ってキーを取り出してみましょう。キーの取り出し方は” オブジェクト.keys” でしたね!!

key = hash.keys

#=> keyという変数にハッシュオブジェクトから取り出したキーを代入

p key  #=> keyの内容を表示してみましょう!!

#=> ["経済学", "財政学", "会計学"] のように配列で表示されます。

 

次は値を取り出してみましょう。値の取り出し方は” オブジェクト.values” でしたね。

 

value = hash.values

#=> valueという変数にハッシュオブジェクトから取り出した値を代入

p value   #=> valueの内容を表示してみましょう!!

#=>  [80, 70, 60]のように配列で表示されます。

 

最後にキーを値の両方を取り出してみましょう。

 

array = hash.to_a

#=> arrayという変数にハッシュオブジェクトから取り出したキーと値を代入

p array    #=> arrayの内容を表示してみましょう!!

#=>  [["経済学", 80], ["財政学", 70], ["会計学", 60]]

のように配列で表示されます。

 

このようにハッシュクラスのメソッドを使ってハッシュオブジェクトから”キー”、”値”、”キーと値”の取り出し方を紹介いたしました。

 

筆者プロフィール

町田 耕

学生時代は会計学専攻。塾講師勤務を経て、企業のCFOとして会社経営に携わる。

会社経営から一線を退いた後、インフラエンジニアの妻の勧めでプログラミングを

独学で始め、プログラミングセミナーなど転々としながら、開発案件に携わるようになる。

現在、フリーランスとして活動しながらテックアカデミーのメンターも勤めている。

 

大石ゆかり

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

田島悠介

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

大石ゆかり

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

TechAcademyでは初心者でも最短4週間でエンジニアになれるRuby on Railsオンラインブートキャンプを開催しています。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間でオリジナルWebサービスを開発することが可能です。

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