LoginSignup
0
0

More than 3 years have passed since last update.

2重ハッシュ

Posted at

初めに

メモがわりに使っているのでわかりにくい部分や省略しているところがありますがご了承ください。

2重ハッシュから値を取り出そう

user_data = [
 {user: {profile: {name: 'George'}}},
 {user: {profile: {name: 'Alice'}}},
 {user: {profile: {name: 'Taro'}}},
]

上記のハッシュを持つ変数user_dateから以下の取り出します。

George
Alice
Taro

解説

ではまずハッシュから値を取り出すには以下のような記述をします。

ハッシュ[取り出したい値のキー]

しかし今回はハッシュの中にハッシュが入っているためこれだけでは目的の値を散り出すことができません。
ではどのように書いていくかというと順番に取り出していきます。
書き方としては以下のようになります。

ハッシュ[取得したいキー][取得したいキー][取得したいキー]

今回はnameというキーを取り出したいので順番に書いていくと以下のようになります。

ハッシュ[:user][:profile][:name]

そして今回の肝はこのハッシュが配列で格納されているということです。配列の取り出し方は色々ありますがeach分を使い1つ1つ取り出すのが綺麗に収まると思います。

user_data.each do |u|
  puts u[:user][:profile][:name]
end

以上です。ハッシュのなかにハッシュがあり見た目がエグいですが、基本は1つ1つ順番に取り出していく形になります。

0
0
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
0