如何计算子阵列的每个位置的总和?

s-c*_*o-m -2 ruby arrays

现在我的数组是:

[[1,2,3],[4,5,6],[]]
Run Code Online (Sandbox Code Playgroud)

我想计算这个数组并返回一个结果:

[5,7,9]
Run Code Online (Sandbox Code Playgroud)

如果有空数组,请将其删除.然后加上每个子阵列的每个位置.

如果使用数组的每个方法,也许我可以得到结果.但是有没有更好的方法只使用ruby的数组方法?

Joh*_*ooy 5

另一个班轮

arr.reject(&:empty?).transpose.map{|x| x.reduce(:+)}
Run Code Online (Sandbox Code Playgroud)

先摆脱了 []

reject(&:empty?)                           # equivalent to reject{|x| x.empty?}
Run Code Online (Sandbox Code Playgroud)

现在.transpose要获得

[[1, 4], [2, 5], [3, 6]]
Run Code Online (Sandbox Code Playgroud)

添加每个子列表

.map{|x| x.reduce(:+)}
Run Code Online (Sandbox Code Playgroud)