迭代使用字符串命名的嵌套哈希

时间:2015-07-17 03:33:39

标签: ruby

我在迭代一系列嵌套哈希时遇到了一些麻烦,我认为这是因为内部哈希是用字符串命名的。不幸的是,我不能简单地改变这些名字。这是我正在使用的那种通用哈希:

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

但是这给出了错误,即每个都不是密钥的可识别方法,我认为,因为计算机由于其命名而将其视为字符串。有没有人有任何想法如何从这里继续(不更改键的名称)?

2 个答案:

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