def add(base, key, val) if tgt = base[key] val.each_pair do |k,v| if tgt[k] then tgt[k] = tgt[k] + v else tgt[k] = v end end else base[key] = val end end
h={"ja"=>{"a"=>1,"b"=>1,"c"=>0}, "usa"=>{"a"=>0,"b"=>0,"c"=>0} } add(h, 'usa', {"a"=>1,"b"=>1,"c"=>0}) p h