2

私は Ruby の初心者で、最近 Ruby を学ぼうとしています。今日ハッシュを調べていて、ハッシュに関連する問題で行き詰まりました

私は次のハッシュを持っています

{"key1" => ["param_1","param_2"], "key2" => ["param_3","param_4"], "key3" => "param_5", "key4" => "param_6","key5" => ["param_7","param_8"]}

上記のハッシュを次のように変換したいと思います。

{"my_hash" => [ {"name" => "key1","value" => ["param_1","param_2"]},
                {"name" => "key2","value" => ["param_3","param_4"]},
                {"name" => "key3","value" => ["param_5"]},
                {"name" => "key4","value" => ["param_6"]},
                {"name" => "key5","value" => ["param_7","param_8"]}
              ]
}

Rubyで効率的な方法でそれを行う方法を教えてください。

4

1 に答える 1

3
hsh = {"key1" => ["param_1","param_2"],
       "key2" => ["param_3","param_4"], "key3" => "param_5", 
      "key4" => "param_6","key5" => ["param_7","param_8"]}
hsh.map{|k,v| {name: k,value: Array(v) }}
# => [{:name=>"key1", :value=>["param_1", "param_2"]},
#     {:name=>"key2", :value=>["param_3", "param_4"]},
#     {:name=>"key3", :value=>["param_5"]},
#     {:name=>"key4", :value=>["param_6"]},
#     {:name=>"key5", :value=>["param_7", "param_8"]}]

hsh = {"key1" => ["param_1","param_2"],
       "key2" => ["param_3","param_4"], "key3" => "param_5", 
      "key4" => "param_6","key5" => ["param_7","param_8"]}
hsh.map{|k,v| {"name" => k,"value" => Array(v) }}
# => [{"name"=>"key1", "value"=>["param_1", "param_2"]},
#     {"name"=>"key2", "value"=>["param_3", "param_4"]},
#     {"name"=>"key3", "value"=>["param_5"]},
#     {"name"=>"key4", "value"=>["param_6"]},
#     {"name"=>"key5", "value"=>["param_7", "param_8"]}]
于 2013-08-27T17:57:37.463 に答える