我是一個初學者,正在尋找一種方法來遍歷包含散列值的散列。例如。我只想打印名爲「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