将Ruby哈希转换为数组

Adi*_*har 9 ruby ruby-on-rails

我有一个形式的哈希 {:a => {"aa" => 11,"ab" => 12}, :b => {"ba" => 21,"bb" => 22}}

我如何将其转换为表单 {:a => [["aa",11],["ab",12]],:b=>[["ba",21],["bb",22]]}

mik*_*kej 19

如果要修改原始哈希,可以执行以下操作:

hash.each_pair { |key, value| hash[key] = value.to_a }
Run Code Online (Sandbox Code Playgroud)

Hash#to_a的文档中

将hsh转换为[key,value]数组的嵌套数组.

h = { "c" => 300, "a" => 100, "d" => 400, "c" => 300 }

h.to_a #=> [["c", 300], ["a", 100], ["d", 400]]

  • 如果您不想修改原始哈希,可以使用:`new_hash = hash.inject({}){| h,(key,value)| h [key] = value.to_a; h}` (3认同)