ruby - 使用 Ruby 按位置添加二维数组中所有元素的最清晰方法是什么?

标签 ruby arrays algorithm

在 Ruby 中按位置添加二维数组中所有元素的最清晰和最有效的方法是什么。示例:

2darray = [[1,2,3],[1,2,3]]
result = [2,4,6]

我有以下代码

def sum_elements_by_position(array)
 total_elements = array.length
 result = []

 for i in 0...array.first.length
   n = 0
   array.each { |subarray| n += subarray[i] }
   result << n
 end
 result
end

假设:所有主要元素的长度都相同

对于奖励积分,很高兴看到一个解决方案适用于任意长度的主要元素

最佳答案

您可以压缩第一行和其余行,然后求和:

def sum_elements_by_position(array)
    array[0].zip(*array[1..-1]).map do |col|
        col.inject(:+)
    end
end

关于ruby - 使用 Ruby 按位置添加二维数组中所有元素的最清晰方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13924460/

相关文章:

c - 递归地打印结构数组中的数据

javascript - 特定对象的 TypeScript 枚举

python - 如何通过opencv匹配纸张

ruby-on-rails - 确定乘客的瓶颈

ruby - 正则表达式在 Rails Ruby 的字符串中查找键?

php - Rails 和 PHP 可以在不同时间访问同一个 SQL 数据库吗?如何?

ruby - 回文检查 ruby

c# - 如何将文件中的矩阵读入数组

algorithm - 如何计算平面分布的重心?

regex - 生成最佳的正则表达式匹配