我有以下哈希数组:
[{"idx"=>"1234","账户"=>"abde","钱"=>"4.00",
"order"=>"00001"}, {"idx"=>"1235", "account"=>"abde", "money"=>"2.00",
"order"=>"00001"}, {"idx"=>"1235", "account"=>"abde", "money"=>"3.00",
“订单”=>“00002”}]
就像 sql 是如何做到的一样,我想获取该散列数组并按订单号对其进行分组,以便得到如下结果,其中订单 00001 被分组,并且将钱加起来为 6.00:
[{"idx"=>"1234","账户"=>"abde","钱"=>"6.00",
"order"=>"00001"}, {"idx"=>"1234", "account"=>"abde", "money"=>"3.00",
“订单”=>“00002”}]
Thanks.
你可以为此制定自己的方法,例如:
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
a call group_hashes arr, "order", "money"
哈希数组示例返回:
[{"idx"=>"1234", "account"=>"abde", "money"=>"6.0", "order"=>"00001"}, {"idx"=>"1235", "account"=>"abde", "money"=>"3.00", "order"=>"00002"}]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)