Summing values in an array using the inject method
In this section, I'm going to examine how to sum up values in Ruby by implementing the inject
method. Being able to sum up values in an array is something you will most likely need in a number of different situations. Thankfully, Ruby makes this very straightforward to implement.
Before we see how to implement the inject
method, I think it's beneficial to review how to generate a sum manually:
total = 0 [3, 2, 4, 53, 5, 3, 23343, 4342, 12, 3].each do |i| total += i end puts total
When you run this program, it will generate the value 27700
, which is the sum of all the individual values present in the array.
However, that took four lines of code. To shorten it, we can use the inject
method:
[3, 2, 4, 53, 5, 3, 23343, 4342, 12, 3].inject(&:+)
In this code, we are calling the inject
method and passing it to each element in the array. The inject
method is similar to map
or select
in the way that it looks at each element in a collection...