Ruby:如何在知道散列(数组)路径的情况下检索散列中的值?
我有这个杂烩Ruby:如何在知道散列(数组)路径的情况下检索散列中的值?,ruby,hash,traversal,Ruby,Hash,Traversal,我有这个杂烩 parentNode = { "titles" => { "primary" => "On Days Like These", "secondary" => "Matt Monro", "tertiary" => nil }, "synopses" => nil, "image_url" => "https://ichef.bbci.co.uk/images/ic/{recipe}/p01bqrb8.jp
parentNode = {
"titles" => {
"primary" => "On Days Like These",
"secondary" => "Matt Monro",
"tertiary" => nil
},
"synopses" => nil,
"image_url" => "https://ichef.bbci.co.uk/images/ic/{recipe}/p01bqrb8.jpg",
"duration" => nil
}
我知道我想要的值的“路径”:
path = ['titles','secondary']
如何检索相应的值,即Matt Monro
这很有效
puts parentNode['titles']['secondary']
但是我想要的是使用上面定义的path变量获取相同的数据。但是
puts parentNode[path]
puts parentNode.dig(path)
没有显示任何内容
我是ruby的新手,为什么这不起作用
谢谢你的Hash。dig接受可变数量的参数,要将数组转换成“可变参数”,你需要使用
*
()
你需要更仔细地阅读这里的文档。“dig”的参数不是数组。谢谢。当你来自另一种语言时,理解这些微妙之处并不总是那么容易。我的评论可能会被认为是一种批评。那不是我的意图。
parentNode.dig(*path)