Hash#merge 可以接受 block of 3 arguments
比如对于数组中每个Hash对于相同的key把value相加作为新的值
可以用
也可以用map来解决
效率还没有benchmark过,不过map应该更加通用一些
比如对于数组中每个Hash对于相同的key把value相加作为新的值
v = [{ "Server" => 1, "Desktop" => 2},{"Server" => 3, "Desktop" => 4, "Mobile" => 5 }]
可以用
v.reduce do |result, hash|
hash.merge(result) do |key, old_value, new_value| old_value + new_value end
end
也可以用map来解决
v.reduce do |result, hash|
Hash[hash.map { |k,v| [k, (result[k].to_i) +v ] }]
end
效率还没有benchmark过,不过map应该更加通用一些
本文介绍了如何使用Ruby中的Hash#merge方法对数组中的Hash进行相同键值相加的操作,并通过示例代码展示实现过程,同时比较了使用map方法的效率和通用性。
890

被折叠的 条评论
为什么被折叠?



