将数组数组转换为哈希数组

lol*_*lix 2 ruby arrays hash ruby-on-rails

array = [
    [ 1, "name1" ],
    [ 2, "name2" ],
    [ 3, "name3" ],
    [ 4, "name4" ]
]
Run Code Online (Sandbox Code Playgroud)

我想把它作为一个像这样的散列数组:

array_hash = [{ "id" => 1, "name" => "name1" },  
              { "id" => 2, "name" => "name2" },  
              { "id" => 3, "name" => "name3" },  
              { "id" => 4, "name" => "name4" }]
Run Code Online (Sandbox Code Playgroud)

Ale*_*kin 6

array = [
    [ 1, "name1" ],
    [ 2, "name2" ],
    [ 3, "name3" ],
    [ 4, "name4" ]
]
array.map { |e| ['id', 'name'].zip(e).to_h }
#? [
#    {"id"=>1, "name"=>"name1"},
#    {"id"=>2, "name"=>"name2"},
#    {"id"=>3, "name"=>"name3"},
#    {"id"=>4, "name"=>"name4"}
# ]
Run Code Online (Sandbox Code Playgroud)

这里唯一有趣的是Enumerable#zip,“合并”数组。