2014-01-20 106 views
0

給定一個哈希值的鍵/值對,如何將其轉換爲每個鍵/值對的單個哈希數組。從一個哈希創建單個哈希陣列

因此,舉例來說,首先:

{"hello"=>"bonjour", "goodbye"=>"au revoir"} 

而轉向到這一點:

[ {"hello" => "bonjour"}, {"goodbye" => "au revoir"} ] 

我認爲有以下但不知道是否有一個更簡單的方法:

array = [] 
hash.each do |k,v| 
    h = Hash.new 
    h[k] = v 
    array << h 
end 

回答

3

按以下方式使用Enumerable#map

h = {"hello"=>"bonjour", "goodbye"=>"au revoir"} 
h.map { |k,v| { k => v } } 
# => [{"hello"=>"bonjour"}, {"goodbye"=>"au revoir"}]