从一个哈希创建单个哈希的数组

时间:2014-01-20 20:05:23

标签: ruby arrays hash

给定键/值对的散列,如何将其转换为每个键/值对的单个散列数组。

例如,从:

开始
{"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

1 个答案:

答案 0 :(得分:3)

使用Enumerable#map执行以下操作:

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