Ruby obtém chaves de objeto como array


97

Sou novo em Ruby, se tenho um objeto como este

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

Como posso retornar um array apenas com as chaves?

["apple", "carrot"]

Seu objeto é um Hash, então você pode usar o keysmétodo como {"apple" => "fruit", "carrot" => "vegetable"}.keys. Para obter mais informações, visite ruby-doc.org/core-1.9.3
taro

Respostas:


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

é simples assim


16

Uma forma alternativa se você precisar de algo mais (além de usar o keysmétodo):

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

obviamente, você só faria isso se quiser manipular o array enquanto o recupera.



2

Use o keysmétodo:{"apple" => "fruit", "carrot" => "vegetable"}.keys == ["apple", "carrot"]

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.