【发布时间】:2022-02-13 11:58:28
【问题描述】:
我有一个数组:
all_ages = ["11", "9", "10", "8", "9"]
我想把它转换成一个整数数组,希望能更容易地将它们加在一起。 非常感谢任何帮助,正在寻找一级解决方案。
【问题讨论】:
标签: arrays ruby string integer data-manipulation
我有一个数组:
all_ages = ["11", "9", "10", "8", "9"]
我想把它转换成一个整数数组,希望能更容易地将它们加在一起。 非常感谢任何帮助,正在寻找一级解决方案。
【问题讨论】:
标签: arrays ruby string integer data-manipulation
Enumerable#sum 可以通过一个块来调用,告诉 Ruby 如何对数组的元素求和,在这种情况下,首先在元素上调用 String#to_i。
all_ages = ["11", "9", "10", "8", "9"]
all_ages.sum(&:to_i)
#=> 47
【讨论】:
all_ages = ["11", "9", "10", "8", "9"]
代码
p all_ages.map(&:to_i).sum
或者
p all_ages.map { |x| x.to_i }.sum
输出
47
【讨论】:
all_pages.sum(&:to_i)
array.map {block} 方法的优势在于,如果需要,它还可以轻松地将x.to_i 替换为Integer(x)。
array.sum(&method(:Integer))?
以下是一种不同的方法,可能也有助于添加到您的武器库中:
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
或者,如果您不想定义新方法:
total = 0
all_ages.each {|x| total += x.to_i}
total
#=> 47
【讨论】: