如果您希望 1 同时返回“first”和“one”,则需要将它们存储在一个数组中,然后该数组将是 1 映射到的值。
results = {}
hash1.each do |key, value|
if results[key].nil?
results[key] = [value]
else
results[key] << value
hash2.each do |key, value|
if results[key].nil?
results[key] = [value]
else
results[key] << value
results[1]
=> ["one", "first"]
更新
你显然不想要一个哈希。您想要一个仅包含值的数组。
results = hash1.values + hash2.values
=> ["one", "two", "three", "first", "second", "third"]
您可以像访问哈希一样访问此数组。请记住,数组是零索引的,因此:
results[0]
=> "one"
results[2]
=> "three"
results[5]
=> "third"
更新 2
现在你毕竟想要一个哈希,因为你有唯一的键。所以:
hash3 = hash1.merge(hash2)