Ruby erhält Objektschlüssel als Array

97

Ich bin neu bei Ruby, wenn ich ein solches Objekt habe

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

Wie kann ich ein Array nur der Schlüssel zurückgeben?

["apple", "carrot"]
JD Isaacks
quelle
Ihr Objekt ist ein Hash, daher können Sie keysMethoden wie verwenden {"apple" => "fruit", "carrot" => "vegetable"}.keys. Für weitere Informationen besuchen Sie ruby-doc.org/core-1.9.3
Taro

Antworten:

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

so einfach ist das

weezor
quelle
16

Ein alternativer Weg, wenn Sie etwas mehr benötigen (neben der keysMethode):

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

Natürlich würden Sie das nur tun, wenn Sie das Array beim Abrufen manipulieren möchten.

Migräne
quelle
4

Wie Taro sagte, keysgibt das Array der Schlüssel Ihres Hash zurück:

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

Sie finden die verschiedenen Methoden, die für jede Klasse verfügbar sind.

Wenn Sie nicht wissen, womit Sie es zu tun haben:

 puts my_unknown_variable.class.to_s

Dies gibt den Klassennamen aus.

illiptisch
quelle
2

Verwenden Sie die keysMethode:{"apple" => "fruit", "carrot" => "vegetable"}.keys == ["apple", "carrot"]

Ridecar2
quelle