例えば、keyに日付が入っており、valueに値が入っているhashが2つあり、
scores1 = [ {'2018-07-01', 1}, {'2018-07-03', 2}, {'2018-07-04', 3} ]
scores2 = [ {'2018-07-02', 1}, {'2018-07-03', 1}, {'2018-07-05', 2} ]
そのhashを以下のようにマージしたい(同一keyの場合は値を合計したい)場合
sum_score = [{'2018-07-01', 1}, {'2018-07-02', 1}, {'2018-07-03', 3}, {'2018-07-04', 3}, {'2018-07-05', 2} ]
ループ回しながらKeyを判定して・・とかやらなくても、こうすることで簡単にできます。
sum_score = scores1.merge(scores2) do |key, oldval, newval|
# 同一keyの場合はsumを行う
oldval + newval
end
同じことで困った人のために、メモとして残しておきます。
配列や連想配列の集計は色々便利なやり方があるようです。