Ruby obtiene claves de objeto como matriz


97

Soy nuevo en Ruby, si tengo un objeto como este

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

¿Cómo puedo devolver una matriz de solo las claves?

["apple", "carrot"]

Su objeto es un Hash, por lo que puede usar un keysmétodo como {"apple" => "fruit", "carrot" => "vegetable"}.keys. Para obtener más información, visite ruby-doc.org/core-1.9.3
taro

Respuestas:


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

Es así de simple


16

Una forma alternativa si necesita algo más (además de usar el keysmétodo):

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

obviamente, solo haría eso si desea manipular la matriz mientras la recupera ...



2

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.