我想将可能无限数量的数字放入其中然后将其添加到数组中,然后将它们全部添加到一起。
我在其他一些问题上看到了这一点,但它们只是puts
- 数组,而不是求和。
case input
when 'add'
puts "Enter the numbers to add on separate lines then hit enter on another line"
add_array = []
numbers_to_add = " "
while numbers_to_add != ""
numbers_to_add = gets.chomp
add_array.push numbers_to_add
end
add_array.delete('')
add_array.map(&:to_f).inject(:+)
puts add_array
end
答案 0 :(得分:4)
您可以使用inject
方法。
[1,2,3].inject(:+) #=> 6
根据你的代码的外观,我猜你的传入数组是一个字符串数组,而不是一个数字数组。要将它们转换为小数(浮点数),您可以使用:
sum = add_array.map(&:to_f).inject(:+)
puts sum
这对每个元素应用#to_f
操作,然后将其传递给求和函数(#inject(:+)
)