0

我有以下哈希数组:

>> hash = { "One" => [{"Oneone" => "1", "Onetwo" => "2"}, {"Oneone" => "3", "Onetwo" => "4"}], "Two" => [{"Twoone" => "5", "Twotwo" => "6"}, {"Twoone" => "7", "Twotwo" => "8"}] }
{
    "One" => [
        [0] {
            "Oneone" => "1",
            "Onetwo" => "2"
        },
        [1] {
            "Oneone" => "3",
            "Onetwo" => "4"
        }
    ],
    "Two" => [
        [0] {
            "Twoone" => "5",
            "Twotwo" => "6"
        },
        [1] {
            "Twoone" => "7",
            "Twotwo" => "8"
        }
    ]
}

我想合并它们来实现这一点:

{
    "OneTwo" => [
        [0] {
            "Oneone" => "1",
            "Onetwo" => "2",
            "Twoone" => "5",
            "Twotwo" => "6"
        },
        [1] {
            "Oneone" => "3",
            "Onetwo" => "4",
            "Twoone" => "7",
            "Twotwo" => "8"
        }
    ]
}
4

1 回答 1

1

假设您的示例代表您的数据,这应该有效。

Hash[hash.keys.join,
     hash.values.transpose.map { |hashes| hashes.inject &:merge }
    ]
于 2012-08-18T21:52:36.043 回答