我有一个哈希数组,其中包含每个块中的资源键,如下所示
[
{
"resources": {
"abc": "...some data..."
}
},
{
"resources": {
"xyz": "...some data..."
}
},
#...
]
所以喜欢将其转换为
{
"resources": {
"abc": "...some data...",
"xyz": "...some data...",
# etc...
}
}
我尝试了很多东西,但没有得到实际结果.. :(
答案 0 :(得分:3)
array.inject{|h, _h| h.merge(_h){|_, h1, h2| h1.merge(h2)}}
答案 1 :(得分:2)
您可以使用Rails Active Support的Hash扩展进行深度合并
require "active_support/core_ext/hash"
array.reduce(&:deep_merge)
#=> {:resources=>{:abc=>"some data", :xyz=>"some data"}}
如果您不想使用active_support
个宝石,可以复制deep_merge
来自其active_support/core_ext/hash/deep_merge.rb