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および など)を使用する方が Ruby に似ていることにも注意してください。:idこれには多くの理由があります。

于 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 に答える