Ruby pobiera klucze obiektowe jako tablicę

98

Jestem nowy w Ruby, jeśli mam taki obiekt

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

Jak mogę zwrócić tablicę samych kluczy?

["apple", "carrot"]
JD Isaacks
źródło
Twój obiekt to Hash, więc możesz użyć keysmetody takiej jak {"apple" => "fruit", "carrot" => "vegetable"}.keys. Aby uzyskać więcej informacji, odwiedź ruby-doc.org/core-1.9.3
taro

Odpowiedzi:

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

to takie proste

weezor
źródło
16

Alternatywny sposób, jeśli potrzebujesz czegoś więcej (poza zastosowaniem keysmetody):

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

oczywiście zrobiłbyś to tylko wtedy, gdybyś chciał manipulować tablicą podczas jej pobierania ..

Tigraine
źródło
4

Jak powiedział taro, keyszwraca tablicę kluczy twojego skrótu:

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

Znajdziesz różne metody dostępne dla każdej klasy.

Jeśli nie wiesz, z czym masz do czynienia:

 puts my_unknown_variable.class.to_s

Spowoduje to wyświetlenie nazwy klasy.

nieliptyka
źródło
2

Użyj keysmetody:{"apple" => "fruit", "carrot" => "vegetable"}.keys == ["apple", "carrot"]

ridecar2
źródło