Ruby получает ключи объекта как массив

98

Я новичок в Ruby, если у меня есть такой объект

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

Как я могу вернуть массив только ключей?

["apple", "carrot"]
Джей Ди Айзекс
источник
Ваш объект - это хэш, поэтому вы можете использовать keysтакой метод, как {"apple" => "fruit", "carrot" => "vegetable"}.keys. Для получения дополнительной информации посетите ruby-doc.org/core-1.9.3
таро

Ответы:

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

это так просто

Weezor
источник
16

Альтернативный способ, если вам нужно что-то еще (помимо использования keysметода):

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

очевидно, вы сделаете это только в том случае, если хотите манипулировать массивом при его извлечении ..

Тигрень
источник
4

Как сказал таро, keysвозвращает массив ключей вашего хэша:

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

Вы найдете все различные методы, доступные для каждого класса.

Если вы не знаете, с чем имеете дело:

 puts my_unknown_variable.class.to_s

Это выведет имя класса.

илиптический
источник
2

Используйте keysметод:{"apple" => "fruit", "carrot" => "vegetable"}.keys == ["apple", "carrot"]

ridecar2
источник