我在迭代一系列嵌套哈希时遇到了一些麻烦,我认为这是因为内部哈希是用字符串命名的。不幸的是,我不能简单地改变这些名字。这是我正在使用的那种通用哈希:
hash =
"name" => {
"stuff" => "value",
"key" => "value", },
"name" => {
"stuff" => "value",
"key" => "value", },
我正在尝试编写一个程序,当它们的键名称被调用时,它们将打印标记为“name”的字段以及其中的值。现在,我坚持
hash.each do |key, value|
puts key
key.each do |stuff, info|
puts info if category == "stuff"
end
end
但是这给出了错误,即每个都不是密钥的可识别方法,我认为,因为计算机由于其命名而将其视为字符串。有没有人有任何想法如何从这里继续(不更改键的名称)?
答案 0 :(得分:0)
正如@meager所说 - 子哈希在值中。试试这个
hash.each do |key, sub_hash|
puts key
sub_hash.each do |category, info|
puts info if category == "stuff"
end
end
答案 1 :(得分:0)
你拥有的是一系列哈希,而不是哈希:
PDFDocument