从哈希数组中拉出键值?

Shp*_*ord 2 ruby arrays hash

我有一系列哈希,像这样:

[
   {"name"=>"Bob Jones", "id"=>"100005913544738"},
   {"name"=>"Jimmy Smith", "id"=>"100005934513815"},
   {"name"=>"Abe Lincoln", "id"=>"100005954493955"}
]
Run Code Online (Sandbox Code Playgroud)

我最终只想在数组中使用这些id,如下所示:

[ 100005913544738, 100005934513815, 100005954493955 ]
Run Code Online (Sandbox Code Playgroud)

我正在运行Ruby 1.9.3.

Dar*_*tle 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]
Run Code Online (Sandbox Code Playgroud)

可枚举的#map是一种非常方便的方法.

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