给定两个哈希值false
和hash1
,它们的大小可能不同,我需要乘以键的任何重现值;不应考虑额外的键值对。
例如考虑下面的例子:
hash2
常用密钥为hash1 = { a: 2, b: 3, c: 4 }
hash2 = { a: 3, b: 4 }
和:a
(不应考虑:b
)。我该怎么做只选择:c
和:a
并返回:b
(针对2 * 3
)和:a
(针对3 * 4
),即数组:b
?
答案 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