循环红宝石数组内部数组的总浮点值

问题描述 投票:0回答:3

我正在尝试将值添加到数组中,以便获得总值。

例如:

values = [[4444.33, 0, 333.444, 0], [3333.444, 0, 1123.44, 5444], [321112.4, 443.3, 0, 4444]]

values.each do |value|
  # Here I need to add each array with the next one so the yielded result would be 
  # [324890.17, 443.3, 1456.884, 9888]
end

请帮助。谢谢。

ruby-on-rails ruby ruby-on-rails-5
3个回答
1
投票
使用mapping。仅一行。

values.transpose.map {|x| x.reduce(0, :+)}


1
投票
由于初始数组中子数组的长度恒定,因此可以使用Array#Transpose,然后对每个结果数组求和。

用于Rails

values.transpose.map(&:sum)

或(在普通红宝石中)

values.transpose.map {|x| x.inject(:+) }


0
投票
values.transpose.map(&:sum)
© www.soinside.com 2019 - 2024. All rights reserved.