我是一个初学者,正在寻找一种方法来遍历包含散列值的散列。例如。我只想打印名为“label”的键的内部哈希元素的所有值的列表。我的数组看起来像这样:通过红宝石散列哈希中的迭代
ary = Hash.new
ary[:item_1] = Hash[ :label => "label_1" ]
ary[:item_2] = Hash[ :label => "label_2" ]
ary[:item_3] = Hash[ :label => "label_3" ]
现在我想通过外散的所有元素进行迭代,并尝试这样的:
ary.keys.each { |item| puts ary[:item] }
或本:
ary.keys.each { |item[:label]| puts ary[:item] }
不幸的是既做不行。但是,如果我尝试这一点 - 很疯狂的感觉 - 弯路,我得到的结果,这是我想:
ary.keys.each { |item|
evalstr = "ary[:" + item.to_s + "][:label]"
puts eval(evalstr)
}
这样产生的结果是:
label_1
label_2
label_3
我绝对相信必须存在是一个更好的方法,但我不知道如何找到这种方法。
非常感谢您的提示!
ary.keys.each {| item |放入ary [item] [:label]}就可以工作。但下面的ary.each_values答案是一个更清洁的解决方案。 – James 2013-04-30 08:05:33