gpt4 book ai didi

ruby - 将嵌套哈希转换为平面哈希

转载 作者:数据小太阳 更新时间:2023-10-29 06:27:37 25 4
gpt4 key购买 nike

这道题是this question的逆题.

给定一个嵌套的哈希

{
:a => {
:b => {:c => 1, :d => 2},
:e => 3,
},
:f => 4,
}

将它转换成平面散列的最佳方法是什么

{
[:a, :b, :c] => 1,
[:a, :b, :d] => 2,
[:a, :e] => 3,
[:f] => 4,
}

最佳答案

另一种方式:

def flat_hash(h,f=[],g={})
return g.update({ f=>h }) unless h.is_a? Hash
h.each { |k,r| flat_hash(r,f+[k],g) }
g
end

h = { :a => { :b => { :c => 1,
:d => 2 },
:e => 3 },
:f => 4 }

flat_hash(h) #=> {[:a, :b, :c]=>1, [:a, :b, :d]=>2, [:a, :e]=>3, [:f]=>4}

关于ruby - 将嵌套哈希转换为平面哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9647997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com