1},{"b"=>2},{"c"=>3},{"a"=>2},{"b"=>4}] 我想得到的结果是 [{"a"=>3},{"b"=>6}-6ren">
gpt4 book ai didi

ruby - 如何对具有不同哈希的数组中的值求和

转载 作者:太空宇宙 更新时间:2023-11-03 17:15:31 25 4
gpt4 key购买 nike

我想对数组中相同项目的总值求和。

我有一个数组作为

[{"a"=>1},{"b"=>2},{"c"=>3},{"a"=>2},{"b"=>4}]

我想得到的结果是

[{"a"=>3},{"b"=>6},{"c"=>3}]

有什么方法可以做到?

最佳答案

如果:

array = [{"a"=>1},{"b"=>2},{"c"=>3},{"a"=>2},{"b"=>4}]

然后你可以这样做:

array.inject(Hash.new{|h,k| h[k] = 0})
{ |h, a| k, v = a.flatten; h[k] += v; h }.
map{|arr| Hash[*arr] }
#=> [{"a"=>3}, {"b"=>6}, {"c"=>3}]

或:

array.each_with_object(Hash.new{|h,k| h[k] = 0})
{ |a, h| k, v = a.flatten; h[k] += v }.
map{|arr| Hash[*arr] }
#=> [{"a"=>3}, {"b"=>6}, {"c"=>3}]

关于ruby - 如何对具有不同哈希的数组中的值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26155064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com