I have an array:
all_ages = ["11", "9", "10", "8", "9"]
and I want to convert it to an array of integers to hopefully make it easier to add them all together. Any help greatly appreciated, looking for level one solutions.
I have an array:
all_ages = ["11", "9", "10", "8", "9"]
and I want to convert it to an array of integers to hopefully make it easier to add them all together. Any help greatly appreciated, looking for level one solutions.
Enumerable#sum can be called with a block telling Ruby how to sum the elements of the array, in this case, to call String#to_i on element first.
all_ages = ["11", "9", "10", "8", "9"]
all_ages.sum(&:to_i)
#=> 47
all_ages = ["11", "9", "10", "8", "9"]
Code
p all_ages.map(&:to_i).sum
Or
p all_ages.map { |x| x.to_i }.sum
Output
47
Here's a different approach that may be useful to add to your arsenal as well:
all_ages = ["11", "9", "10", "8", "9"]
def sum_str_to_i (array)
total = 0
array.each {|x| total += x.to_i}
total
end
sum_str_to_i(all_ages)
#=> 47
Or, if you don't want to define a new method:
total = 0
all_ages.each {|x| total += x.to_i}
total
#=> 47