简体   繁体   中英

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

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM