是否有一些方便的方法来转换数组
[a,b,c]
到哈希树结构,但只有一个分支,如下所示:
{node: {a: {node: {b: {node: :c}}}}}
答案 0 :(得分:2)
您可以使用reduce
来获得结果:
l = [:a, :b, :c]
t = l.reverse.reduce{|h,v|{v=>{node:h}}} # {:a=>{:node=>{:b=>{:node=>:c}}}}
答案 1 :(得分:1)
这样的事情会发生:
a=[:a,:b,:c]
l=lambda{|ar| if ar.empty? then
{}
else
ar.length==1 ? {:node=>ar[0]} : {:node=> {ar.shift => (l.call ar)}}
end
}
puts l.call a
不确定是否有更简单的方法。
UPD:哎呀,没注意到它与ActiveSupport有关。无论如何,将这个哈希转换为你需要的结构并不困难。