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 callString#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
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.