0
我在編寫一個類來迭代散列或嵌套散列的散列時遇到了困難,下面是我擁有的散列的一個示例。編寫一個遍歷哈希散列的類
hash = {a => {:number => 1, :color => "blue", :language => english} b => {:number => 2, :color => "red", :language => english}
我想寫類的方法,將返回各自母
我在編寫一個類來迭代散列或嵌套散列的散列時遇到了困難,下面是我擁有的散列的一個示例。編寫一個遍歷哈希散列的類
hash = {a => {:number => 1, :color => "blue", :language => english} b => {:number => 2, :color => "red", :language => english}
我想寫類的方法,將返回各自母
所有你需要的是一個方法,而不是一類的數量。以下是您可以使用的幾種方法。
def numbers(h)
Hash[h.map { |k,v| [k, v[:number]] }]
end
h = { :a => {:number => 1, :color => "blue", :language => "english" },
:b => {:number => 2, :color => "red", :language => "english" } }
numbers(h)
#=> {:a=>1, :b=>2}
或使用Ruby 2.1:
def numbers(h)
h.map { |k,v| [k, v[:number]] }.to_h
end
返回相同的哈希另一種方式:
def numbers(h)
h.each_with_object({}) { |(k,v),g| g[k] = v[:number] }
end
'了''english'和'B'不是文字。在最後需要兩個哈希和一個'}'之間的逗號。也許你想要':a',':b'和''english「'。請編輯更正。在發佈之前,請始終使用IRB或PRY測試您的示例。 – 2014-10-05 19:22:48