我有两个哈希数组:
a = [
{
key: 1,
value: "foo"
},
{
key: 2,
value: "baz"
}
]
b = [
{
key: 1,
value: "bar"
},
{
key: 1000,
value: "something"
}
]
我想将它们合并成一个哈希数组,基本上就是a + b
,但我希望b
中任何重复的键都会覆盖a
中的键。在这种情况下,a
和b
都包含键1
,我希望最终结果具有b
的键值对。
以下是预期结果:
expected = [
{
key: 1,
value: "bar"
},
{
key: 2,
value: "baz"
},
{
key: 1000,
value: "something"
}
]
我想知道是否有更简洁的方法,尽管我已经解决了问题。
hash_result = {}
a.each do |item|
hash_result[item[:key]] = item[:value]
end
b.each do |item|
hash_result[item[:key]] = item[:value]
end
result = []
hash_result.each do |k,v|
result << {:key => k, :value => v}
end
puts result
puts expected == result # prints true