从ruby中的哈希数组创建数组

从ruby中的哈希数组创建数组,ruby,arrays,Ruby,Arrays,我有一个哈希数组 兔子=[{color=>“蓝色”、:高度=>5、:名称=>“查尔斯”}、{color=>“红色”、:高度=>12、:名称=>“亨利”}、{color=>“绿色”、:高度=>7、:名称=>“弗朗西斯”}、{color=>“紫色”、:高度=>3、:名称=>“威廉”}] 如何从这个只有:高度的数组创建一个数组 我试过:rabbits.map(&:height)和rabbits.map{I|I.height}但都不起作用 目标是让height\u数组=[5,12,7,3]这将起作用 r

我有一个哈希数组

兔子=[{color=>“蓝色”、:高度=>5、:名称=>“查尔斯”}、{color=>“红色”、:高度=>12、:名称=>“亨利”}、{color=>“绿色”、:高度=>7、:名称=>“弗朗西斯”}、{color=>“紫色”、:高度=>3、:名称=>“威廉”}]

如何从这个只有:高度的数组创建一个数组

我试过:
rabbits.map(&:height)
rabbits.map{I|I.height}
但都不起作用

目标是让
height\u数组=[5,12,7,3]

这将起作用

rabbits.map{|c| c[:height] }

您尝试的其他两种方法期望
height
c
上的一种方法,但事实并非如此。

兔子。注射([]){| height,hash | height在我看来,在这里使用
inject
是一种过度使用:)事实上,它只是作为option@AshishSaihgal我被要求编辑这个问题,因为这是编码挑战的一部分,馆长担心未来的学生会找到这个问题并将其用于他们的答案。
cats.inject
s应该等于
兔子。注射
猫的年龄
应该等于
高度
。很抱歉给您带来不便:(非常感谢!我试过了,但没有将其存储为新数组。因此,当我试图在下一行打印cat时,它给了我原始数组。再次感谢。要重写原始数组,请使用
cat.map!。
(注意感叹号).但我会将其保存到另一个变量,
ages=cats.map…
谢谢Sergio。我不知道。答案已接受。:)我被要求编辑这个问题,因为它是编码挑战的一部分,馆长担心未来的学生会找到这个问题并用它来回答。
cats.map
应该等于
兔子。map
cats\u age
应该等于
高度。对此不便,我深表歉意(这是地图的别名,不是吗?:)@Salil我被要求编辑这个问题,因为这是编码挑战的一部分,馆长担心未来的学生会找到这个问题并用它来回答。
cats.collect
应该等于
兔子。collect
cats\u-age
应该等于
高度。对此不便,我深表歉意(
rabbits.inject([]) {|height,hash| height << hash[:height]}
arr = cats.collect{|c| c[:cats_age] }