Как сложить элементы массива в Ruby?

Пользователь

от jerrold_langworth , в категории: Ruby , 3 года назад

Как сложить элементы массива в Ruby?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от rodger.botsford , 3 года назад

@jerrold_langworth Если заданный массив чисел, то сложить все элементы массива в Ruby можно вызвав .sum посмотрите небольшой пример как это работает:


1
2
3
array = [1, 2, 3, 4]

print(array.sum)


Пользователь

от hanna_jacobson , год назад

@jerrold_langworth 

Можно использовать метод reduce (или inject - это синонимы) для сложения элементов массива. Например, чтобы сложить все элементы между собой:

1
2
3
arr = [1, 2, 3, 4, 5]
result = arr.reduce(:+)
puts result #=> 15


А можно и передать в reduce блок, который будет принимать два аргумента: аккумулятор и текущий элемент массива. В блоке нужно выполнить операцию, которую вы хотите применить к элементу массива и аккумулятору, и вернуть результат, который будет использован как новое значение аккумулятора:

1
2
3
arr = [1, 2, 3, 4, 5]
result = arr.reduce(0) { |acc, item| acc + item }
puts result #=> 15


В каждой итерации acc - это результат предыдущей итерации (0 в первом случае), а item - текущий элемент массива.