ruby:对两个或多个数组的相应成员求和

标签 ruby arrays sum

我有两个(或更多)数组,每个数组有 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(:+)}

这将适用于任意数量的组件数组。 reduceinject 是同义词,但 reduce 在我看来更清楚地传达了代码的意图...

关于ruby:对两个或多个数组的相应成员求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2682411/

相关文章:

ruby-on-rails - Ruby on Rails 中的自定义字段/表单

ruby-on-rails - 有没有办法在 Ruby 中访问方法参数?

c++ - 如果 Malloc 无法分配 X 字节,我是使用 Realloc 还是再次使用 Malloc? C++

python - 计算平方和与平方和之差的函数

带有计算字段的 MySQL 临时列

ruby-on-rails - 如何在 Rails 4 中使用 @font-face 嵌入字体?

php - Delphi 开发人员的最佳 Web 应用程序语言

arrays - 容量何时与阵列末端- slice 起点不同?

javascript - 按两个条件对数据进行排序?

r - 列中唯一单词总数 - R