Ruby récupère les clés d'objet sous forme de tableau

98

Je suis nouveau sur Ruby, si j'ai un objet comme celui-ci

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

Comment puis-je retourner un tableau contenant uniquement les clés?

["apple", "carrot"]
JD Isaacks
la source
Votre objet est un Hash, vous pouvez donc utiliser une keysméthode comme {"apple" => "fruit", "carrot" => "vegetable"}.keys. Pour plus d'informations, visitez ruby-doc.org/core-1.9.3
taro

Réponses:

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

c'est si simple

weezor
la source
16

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

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

évidemment, vous ne le feriez que si vous souhaitez manipuler le tableau tout en le récupérant.

Tigraine
la source
4

Comme taro l'a dit, keysretourne le tableau de clés de votre Hash:

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

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

Si vous ne savez pas à quoi vous avez affaire:

 puts my_unknown_variable.class.to_s

Cela affichera le nom de la classe.

illiptique
la source
2

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

ridecar2
la source