我已经看到了这个问题Traversing a Hash Recursively in Ruby
但是我仍然无法做到这一点。任何人都可以帮忙(也解释)。
输入哈希:
{"." => {"foo" => {"hello" => {}, "world" => {}}, "bar" => {}}}
我只需要遍历它而不是搜索任何东西
答案 0 :(得分:1)
如果所有值都是哈希值,则可以使用:
hash = {"." => {"foo" => {"hello" => {}, "world" => {}}, "bar" => {}}}
def traverse(hash, depth = 0)
hash.each { |key, value|
puts "#{depth} #{key}"
traverse(value, depth + 1)
}
end
traverse(hash)
输出:
0 .
1 foo
2 hello
2 world
1 bar