如何将此哈希转换为哈希数组?

Snu*_*ber 0 ruby arrays hash

我在下面有这个哈希叫disciplines:

disciplines = {"Architecture"=>"architecture", "Auditing"=>"auditing", "Consulting"=>"consulting", "Delivery"=>"delivery", "Development"=>"development", "Engineering"=>"engineering", "Environment / IT"=>"environment", "Graphic Design"=>"graphic_design", "Management"=>"management", "Requirements"=>"requirements", "Research"=>"research", "Support"=>"support", "System Design"=>"system_design", "Test & Eval"=>"test_and_evaluation", "Writing"=>"writing"}
Run Code Online (Sandbox Code Playgroud)

我想将它转换为一个看起来像这样的哈希数组:

[{"name"=>"Architecture", "value"=>"architecture"}, {"name"=>"Auditing", "value"=>"auditing"}, {"name"=>"Consulting", "value"=>"consulting"}, {"name"=>"Delivery", "value"=>"delivery"}, {"name"=>"Development", "value"=>"development"}, {"name"=>"Engineering", "value"=>"engineering"}, {"name"=>"Environment / IT", "value"=>"environment"}, {"name"=>"Graphic Design", "value"=>"graphic_design"}, {"name"=>"Management", "value"=>"management"}, {"name"=>"Requirements", "value"=>"requirements"}, {"name"=>"Research", "value"=>"research"}, {"name"=>"Support", "value"=>"support"}, {"name"=>"System Design", "value"=>"system_design"}, {"name"=>"Test & Eval", "value"=>"test_and_evaluation"}, {"name"=>"Writing", "value"=>"writing"}]
Run Code Online (Sandbox Code Playgroud)

所以我只想在第一个哈希中获取每个键值对并将其映射到一个新的哈希,其中键现在是一个值,name值现在是一个值value,并将它们全部放入哈希数组中

Cri*_*scu 7

你可以简单地做:

disciplines.map{ |k, v| { 'name' => k, 'value' => v } }
Run Code Online (Sandbox Code Playgroud)

实现这一目标.

这是一个演示:http://ideone.com/DBU3Ck