Если вы просто хотите вычислить равные ключи в хэше, вам нужен метод merge
в классе Hash.
https://ruby -doc.org / core-2.2.1 / Hash.html # method-i-merge
Возвращает новый хеш, содержащий содержимое other_hash и содержимое hsh.Если блок не указан, значением для записей с дублирующимися ключами будет значение other_hash.В противном случае значение для каждого дублированного ключа определяется путем вызова блока с ключом, его значение в hsh и его значение в other_hash.
Когда вы передаете блок методу merge
, он дасти старое значение, и новое значение, и вы можете выполнять свои вычисления там.
Например:
hash = {"a"=>2, "b"=>3}
hash2 = {"c"=>4, "a"=>5}
result = hash.merge(hash2) { |key, old_val, new_val| old_val + new_val }
p result #=> {"a"=>7, "b"=>3, "c"=>4}