Anu*_*nuj 1 ruby arrays hash hashmap
尝试添加相同键的值但迭代它.这是我的阵列
arr = [ {a: 10, b: 5, c: 2}, {a: 5, c: 3}, { b: 15, c: 4}, {a: 2}, {} ]
Run Code Online (Sandbox Code Playgroud)
想要转换它就像
{a: 17, b: 20, c: 9}
Run Code Online (Sandbox Code Playgroud)
这是通过使用Enumerable#reduce和执行此操作的一种方法Hash#merge:
arr.reduce {|acc, h| acc.merge(h) {|_,v1,v2| v1 + v2 }}
#=> {:a=>17, :b=>20, :c=>9}
Run Code Online (Sandbox Code Playgroud)