我在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" => {}}}
我对格式缺少什么?或者我只是不了解嵌套的哈希?
答案 0 :(得分:2)
根据Hash#values_at documentation
返回一个包含与给定键相关联的值的数组
该方法不知道如何处理嵌套哈希。您需要向下导航到要搜索的哈希级别。例如:
j["grandpa"].values_at("dad")