How to convert an array of string integers to an array of integers? Ruby

Viewed 80

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.

3 Answers

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
Related