2011-12-28 14 views
75

Jestem nowym Ruby, jeśli mam obiekt jak tenRuby dostać klucze obiekt jako tablicy

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

Jak mogę zwrócić tablicę zaledwie klawiszach?

["apple", "carrot"] 
+0

Twój obiekt jest hasłem, więc możesz użyć metody 'keys' jak' {"apple" => "fruit", "carrot" => "vegetable"}. keys'. Aby uzyskać więcej informacji, odwiedź http://ruby-doc.org/core-1.9.3/ – taro

Odpowiedz

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

to proste

+1

+1 dziękuję, (nie można zaakceptować odpowiedzi do czasu) –

1

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

4

jak taro powiedział keys zwraca tablicę kluczy swojego Hash:

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

Znajdziesz Wszystkie dostępne metody dla każdej klasy.

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

wyjściu
puts my_unknown_variable.class.to_s 

będzie to nazwa klasy.

+0

+1 bardzo przydatne informacje. Dzięki. –

+0

+1 dla linku do Hash docs. Nowicjusze Ruby powinni zaznajomić się z metodami Hash, String, Array i Enumerable. –

12

Alternatywnym sposobem, jeśli potrzebujesz czegoś więcej (oprócz stosując metodę keys):

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

oczywiście byś zrobić tylko, że jeśli chcą manipulować tablicy podczas pobierania go ..

+0

Nie zdawałem sobie sprawy, że tak naprawdę tego szukałem, dopóki tego nie zobaczyłem. Dziękuję za odpowiedź. –