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
array.map {block}
approach to be advantageous in that it also allows an easy way to replace x.to_i
with Integer(x)
if desired.
array.sum(&method(:Integer))
?
Commented
Feb 13, 2022 at 17:18