从ruby中的哈希数组创建数组
我有一个哈希数组 兔子=[{color=>“蓝色”、:高度=>5、:名称=>“查尔斯”}、{color=>“红色”、:高度=>12、:名称=>“亨利”}、{color=>“绿色”、:高度=>7、:名称=>“弗朗西斯”}、{color=>“紫色”、:高度=>3、:名称=>“威廉”}] 如何从这个只有:高度的数组创建一个数组 我试过:从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
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] }