2014-01-20 105 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"}]