2011-12-28 5 views
75

Je suis nouveau à Ruby, si j'ai un objet comme celui-ciRuby obtenir les clés d'objet comme tableau

{"apple" => "fruit", "carrot" => "vegetable"} 

Comment puis-je retourner un tableau de juste les clés?

["apple", "carrot"] 
+0

Votre objet est un Hash, donc vous pouvez utiliser la méthode 'keys' comme' {"apple" => "fruit", "carot" => "légume"}. keys'. Pour plus d'informations, visitez http://ruby-doc.org/core-1.9.3/ – taro

Répondre

160
hash = {"apple" => "fruit", "carrot" => "vegetable"} 
array = hash.keys #=> ["apple", "carrot"] 

il est aussi simple que cela

+1

+1 merci, (vous ne pouvez pas accepter votre réponse avant la limite de temps) –

1

Utilisez la méthode keys: {"apple" => "fruit", "carrot" => "vegetable"}.keys == ["apple", "carrot"]

4

Comme taro dit, keys renvoie le tableau de clés de votre Hash:

http://ruby-doc.org/core-1.9.3/Hash.html#method-i-keys

Vous trouverez un Toutes les différentes méthodes disponibles pour chaque classe.

Si vous ne savez pas ce que vous avez affaire à:

puts my_unknown_variable.class.to_s 

Cette sortie sera le nom de classe.

+0

+1 très utile. Merci. –

+0

+1 pour le lien vers les documents Hash. Les novices de Ruby devraient se familiariser intimement avec les méthodes de Hash, String, Array et Enumerable. –

12

Une autre façon si vous avez besoin quelque chose de plus (en plus d'utiliser la méthode keys):

hash = {"apple" => "fruit", "carrot" => "vegetable"} 
array = hash.collect {|key,value| key } 

vous serait évidemment que faire si vous voulez manipuler le tableau tout en récupérant ..

+0

Je n'avais pas réalisé que c'était vraiment ce que je cherchais jusqu'à ce que je le voie. Merci d'avoir cette réponse ici. –

Questions connexes