[RUBY] [About double hash]

●●● Problem ●●● Suppose you have the following array user_data.

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

From here, extract only the user name so that the output looks like the one below.


●●● Answer ●●●

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

user_data.each{ |u| puts u.dig(:user, :profile, :name) }

●●● Explanation ●●●

First of all, how to retrieve the hash.

hash[The key of the value you want to get]

user = {name:Taro}
#=> "Taro"

Checking the structure of the array user_data in question

First element of the array
Second element of the array
Third element of the array

You can see that it is. The each method is used for the array user_data, and the name key is extracted for each element of the array. Therefore, the answer is as above.

Recommended Posts

[About double hash]
[ruby] Double hash
Ruby double hash
[Rails] About active hash
gem active_hash About active hash
About =
About the behavior of ruby Hash # ==
Extraction of "ruby" double hash * Review
[Ruby] Extracting double hash in array
About method.invoke
About Kotlin
About attr_accessor
About Hinemos
About inheritance
About params
About Docker
About form_for
About Spring ③
About polymorphism
About Optional
About hashes
About JitPack
About Dockerfile
About this ()
About devise
About encapsulation
About Docker
About active_hash
About static
About exceptions
Hash basics
About scope
[Maven] About Maven