我有一个哈希
my_hash = {"key1"=> {"key2"=> {"key3"=> "value"}}, "key4"=> "value"}
我想只返回键的完整路径作为数组。所有连接都像这样
[key1, key1key2, key1key2key3, key4].
有关如何执行此操作的任何建议。感谢
答案 0 :(得分:0)
答案 1 :(得分:0)
以下是递归方法,逐步修改内部哈希的键。例如,
{"key2"=> {"key3"=> "value"}}
更改为
{"key1key2"=> {"key3"=> "value"}}
之后
{"key3"=> "value"}
更改为
{"key1key2key3"=> "value"}
这使我可以简单地累积这些哈希的键。
def recurse(h)
h.map do |k,v|
next k unless v.is_a?(Hash)
key, val = v.flatten
[k, recurse("#{k}#{key}"=>val)]
end.flatten
end
recurse my_hash
#=> ["key1", "key1key2", "key1key2key3", "key4"]