LoginSignup
0
2

More than 3 years have passed since last update.

Rubyの2重ハッシュ

Posted at

配列の中に、複数のユーザーの情報をハッシュとして持つuser_dataがあります。

user_data = [ {user: {profile: {name: 'Ken' }}}, 
              {user: {profile: {name: 'Ichiro' }}},
              {user: {profile: {name: 'Yuki' 
 }}},
]

#ターミナルでの出力結果
Ken
Ichiro
Yuki

user_dataを利用して、全てのユーザーの名前だけが出力されるようにRubyでコーディングを行いたい場合どうしたら良いでしょうか。

ハッシュから特定の値を取得するには、

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

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

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

今回の場合、名前を取得したいので、

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

で取得ができます。

また、配列の中にハッシュが格納されているためeach文でハッシュの一つ一つを取り出して名前を取り出す必要があります。

よって

user_data = [ {user: {profile: {name: 'Ken' }}}, 
              {user: {profile: {name: 'Ichiro' }}},
              {user: {profile: {name: 'Yuki' 
 }}},
]

#の中の名前は

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

のように記述することで名前を取り出すことができます。

0
2
2

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
2