我有两个(或更多)数组,每个数组有 12 个整数(对应于每个月的值)。我想要的只是将它们加在一起,这样我就有了一个包含每个月总值的数组。这是一个包含三个值的示例: [1,2,3] 和 [4,5,6] => [5,7,9]
我能想到的最好的是:
[[1,2,3],[4,5,6]].transpose.map{|arr| arr.inject{|sum, element| sum+element}} #=> [5,7,9]
有更好的方法吗?这似乎是一件很基本的事情。
最佳答案
这是 Anurag 建议的 transpose
版本:
[[1,2,3], [4,5,6]].transpose.map {|x| x.reduce(:+)}
这将适用于任意数量的组件数组。 reduce
和 inject
是同义词,但 reduce
在我看来更清楚地传达了代码的意图...
关于ruby:对两个或多个数组的相应成员求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2682411/