3

我有一个哈希数组。

rabbits = [{:color=>"blue", :height=>5, :name=>"Charles"}, {:color=>"red", :height=>12, :name=>"Henry"} , {:color=>"green", :height=>7, :name=>"Francis"}, {:color=>"purple", :height=>3, :name=>"William"}]

如何从这个仅包含 :height 的数组创建一个数组?

我试过了:rabbits.map(&:height)rabbits.map{|i| i.height}都没有奏效。

目标是拥有height_array = [5, 12, 7, 3]

4

3 回答 3

6

这将起作用

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

您尝试的其他两种方法期望height是一种c并非如此的方法。

于 2012-10-12T07:32:00.717 回答
0
rabbits.inject([]) {|height,hash| height << hash[:height]}
于 2012-10-12T07:32:59.150 回答
0
arr = cats.collect{|c| c[:cats_age] }
于 2012-10-12T07:54:06.063 回答