Я хочу добавить первый элемент первого массива и первый элемент второго массива таким же образом для всех четырех наборов [...], как итоговая сумма
К получить промежуточную сумму, вы можете начать с создания пустого массива «итогов» правильного размера:
totals = [0, 0, 0, 0]
Добавление строки означает добавление каждого из значений строки к соответствующему итогу.
Это можно сделать разными способами, например, вручную:
row = [4444.33, 0, 333.444, 0]
totals[0] += row[0]
totals[1] += row[1]
totals[2] += row[2]
totals[3] += row[3]
p totals #=> [4444.33, 0, 333.444, 0]
или через each_with_index
в строке:
row = [3333.444, 0, 1123.44, 5444]
row.each_with_index { |v, i| totals[i] += v }
p totals #=> [7777.773999999999, 0, 1456.884, 5444]
или через map!
(обратите внимание на !
) и with_index
в массиве totals
:
row = [321112.4, 443.3, 0, 4444]
totals.map!.with_index { |t, i| t + row[i] }
p totals #=> [328890.174, 443.3, 1456.884, 9888]