如何在哈希中乘以相同键的值

时间:2015-09-09 14:24:16

标签: ruby hash

给定两个哈希值falsehash1,它们的大小可能不同,我需要乘以键的任何重现值;不应考虑额外的键值对。

例如考虑下面的例子:

hash2

常用密钥为hash1 = { a: 2, b: 3, c: 4 } hash2 = { a: 3, b: 4 } :a(不应考虑:b)。我该怎么做只选择:c:a并返回:b(针对2 * 3)和:a(针对3 * 4),即数组:b

2 个答案:

答案 0 :(得分:2)

hash1.map { |k, v| v * hash2[k] if hash2.key? k }.compact

答案 1 :(得分:1)

common_keys = hash1.keys & hash2.keys
multiply = []
common_keys.each do |key|
  multiply << hash1[key] * hash2[key]
end
puts multiply