ruby数组结构转换的元素总和

Vya*_*nov -1 ruby arrays hash

我有

{
  3=>[
    {63=>[5, 0, 1, 0]}, 
    {64=>[0, 0, 0, 0]},
    {65=>[0, 1, 2, 2]}
  ],
  1=>[
     {31=>[2, 0, 0, 0]},
     {32=>[0, 0, 3, 0]}
  ]
}
Run Code Online (Sandbox Code Playgroud)

我需要转换成

{ 3 => [5,1,3,2], 1 => [2,0,3,0] }
Run Code Online (Sandbox Code Playgroud)

nur*_*tin 5

h= {
  3=>[
    {63=>[5, 0, 1, 0]},
    {64=>[0, 0, 0, 0]},
    {65=>[0, 1, 2, 2]}
  ],
  1=>[
     {31=>[2, 0, 0, 0]},
     {32=>[0, 0, 3, 0]}
  ]
}

p h.map{ |k, v| { k=> v.map(&:values).flatten(1).transpose.map{ |r| r.reduce(:+) } } }

# => [{3=>[5, 1, 3, 2]}, {1=>[2, 0, 3, 0]}]
Run Code Online (Sandbox Code Playgroud)