I有しハッシュの次の配列によってによってアレイ、グループのハッシュ和:ルビー - 列名
[{ "IDX" => "1234"、 "アカウント" => "ABDE "、" money "=>" 4.00 "、 " order "=>" 00001 "}、{" idx "=>" 1235 "、" account "=>" abde "、" money "=>" 2.00 " "order" => "00001"}、{"idx" = "1235"、 "account" => "abde"、 "money" => "3.00"、 "order" => "00002"}]
sqlのやり方と同様に、私はそのハッシュの配列を順序番号でグループ化し、order 00001がgrのようになるようにしたいと思いますoupedと、それは6.00にお金を合計:
[{ "IDX" => "1234"、 "アカウント" => "ABDE"、 "お金" => "6.00"、 "オーダー" => "00001"}、{ "IDX" => "1234"、 "アカウント" => "ABDE"、 "お金" => "3.00"、 "順序" => "00002"}]
ありがとう。ハッシュの例のあなたの配列を返すに
def group_hashes arr, group_field, sum_field
arr.inject({}) do |res, h|
(res[h[group_field]] ||= {}).merge!(h) do |key, oldval, newval|
key.eql?(sum_field) ? (oldval.to_f + newval.to_f).to_s : oldval
end
res
end.values
end
コールgroup_hashes arr, "order", "money"
:
すごいです!ありがとうございました。 – oprogfrogo