DFS遍历深度嵌套的哈希

时间:2014-09-04 13:10:13

标签: ruby hash

我已经看到了这个问题Traversing a Hash Recursively in Ruby

但是我仍然无法做到这一点。任何人都可以帮忙(也解释)。

输入哈希:

{"." => {"foo" => {"hello" => {}, "world" => {}}, "bar" => {}}}

我只需要遍历它而不是搜索任何东西

1 个答案:

答案 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