2

我有一个哈希数组,如下所示:

[
   {"name"=>"Bob Jones", "id"=>"100005913544738"},
   {"name"=>"Jimmy Smith", "id"=>"100005934513815"},
   {"name"=>"Abe Lincoln", "id"=>"100005954493955"}
]

我最终只希望这些 id 在一个数组中,如下所示:

[ 100005913544738, 100005934513815, 100005954493955 ]

我正在运行 Ruby 1.9.3。

4

2 回答 2

8
a = [{"name"=>"Bob Jones", "id"=>"100005913544738"},
     {"name"=>"Jimmy Smith", "id"=>"100005934513815"},
     {"name"=>"Abe Lincoln", "id"=>"100005954493955"}]

a.map{|h| h['id'].to_i}
# => [100005913544738, 100005934513815, 100005954493955]

Enumerable#map是一个非常方便熟悉的方法。

同样值得注意的是,如果您可以控制原始数组的生成,则使用符号(例如,:name:id)而不是字符串作为哈希键更像 Ruby。这有很多原因

于 2013-05-16T18:23:12.457 回答
0
h = [
   {"name"=>"Bob Jones", "id"=>"100005913544738"},
   {"name"=>"Jimmy Smith", "id"=>"100005934513815"},
   {"name"=>"Abe Lincoln", "id"=>"100005954493955"}
]

h.map{|i| i.fetch("id").to_i}
#=> [100005913544738, 100005934513815, 100005954493955]
于 2013-05-16T18:24:18.250 回答