[RUBY] [À propos du double hachage]

●●● Problème ●●● Supposons que vous ayez le tableau user_data suivant.

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

À partir de là, extrayez uniquement le nom d'utilisateur pour que la sortie ressemble à celle ci-dessous.

George
Alice
Taro

●●● Répondre ●●●

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

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

●●● Explication ●●●

Tout d'abord, comment récupérer le hachage.

hacher[Clé de la valeur que vous souhaitez obtenir]

#Exemple
user = {name:Taro}
user[:name]
#=> "Taro"

Vérification de la structure du tableau de problèmes user_data

Premier élément du tableau
{user:{profile:{name:'George'}}}
Deuxième élément du tableau
{user:{profile:{name:'Alice'}}}
Le troisième élément du tableau
{user:{profile:{name:'Taro'}}}

Vous pouvez voir que c'est le cas. La méthode each est utilisée pour le tableau user_data et la clé de nom est extraite pour chaque élément du tableau. Par conséquent, la réponse est comme ci-dessus.

Recommended Posts

[À propos du double hachage]
[ruby] Double hachage
[Rails] À propos du hachage actif
Hacher
gem active_hash À propos du hachage actif
À propos =
À propos du comportement de ruby Hash # ==
Extraction du double hash "ruby" * Avis
À propos de method.invoke
À propos de Kotlin
À propos de attr_accessor
À propos de Hinemos
À propos de l'héritage
À propos de Docker
À propos du printemps ③
À propos du polymorphisme
À propos facultatif
À propos du hachage
À propos de JitPack
À propos de ça ()
À propos de l'encapsulation
À propos de JAVA_HOME
À propos de statique
À propos des exceptions
À propos de la portée
[Maven] À propos de Maven