Ruby Nested Hash values_at不起作用

时间:2012-09-06 17:59:29

标签: ruby hash

我在Ruby中使用嵌套哈希,但values_at方法没有返回任何数据,我找不到原因。

j =  {"grandpa" => { "dad" => {"child 1" => {}, "child 2" => {} }, "uncle" => {"child 3" => {}, "child 4" => {} } } }
puts j.values_at("dad")

它不会打印任何内容。我认为应该打印"child1""child2",因为它们都是"dad"的值。

如果我为values_at运行"grandpa",我会收到正确的回复:

{"dad" => {"child 1" => {}, "child2" => {}}, "uncle" => {"child 3" => {}, "child 4" => {}}}

我对格式缺少什么?或者我只是不了解嵌套的哈希?

1 个答案:

答案 0 :(得分:2)

根据Hash#values_at documentation

  

返回一个包含与给定键相关联的值的数组

该方法不知道如何处理嵌套哈希。您需要向下导航到要搜索的哈希级别。例如:

j["grandpa"].values_at("dad")