0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

2重ハッシュ

Last updated at Posted at 2021-02-28
user_data = [
 {user: {profile: {name: 'Choco'}}},
 {user: {profile: {name: 'Ramune'}}},
 {user: {profile: {name: 'Sakura'}}},
]

ここからeachメソッドを使って全てのユーザーの名前を出力したいと思います。

ハッシュから特定の値を取得する場合はその値に対応するキーを指定します。

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

2重ハッシュから特定の値を取得する場合は、取得したい値のキーまでを連続して指定します。

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

冒頭の記述では配列の中にハッシュが格納されています。
ハッシュの1つ1つを取り出すためにeach文を用いて記述します。

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

ブロック変数をxとしました。
Rubyファイルの記述をまとめるとこのようになります。

user_data = [
 {user: {profile: {name: 'Choco'}}},
 {user: {profile: {name: 'Ramune'}}},
 {user: {profile: {name: 'Sakura'}}},
]

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

ターミナルでファイルを実行すると、順番にブロック変数xに代入されていき、全てのユーザーの名前が出力されます。

Choco
Ramune
Sakura

補足
※digメソッドを使って取り出す方法もあります。その場合は以下のような記述になります。

user_data.each{ |x| puts x.dig(:user, :profile, :name) }
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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?