繁体   English   中英

在求和输出时循环遍历数组

[英]Loop through an array while summing the output

我正在尝试使用for循环,然后将所有输出求和。 我知道这是一个基本问题,但是我不确定是应该在循环中还是使用另一个数组来解决这个问题。

例如:

for i in 1..100
if foo / 2 == 0
#find the sum of all outputs
end

结束

尝试这个:

(2..100).step(2).inject(:+) #=> 2550

要么:

2.step(100,2).inject(:+) #=> 2550

您可以使用sum代替Ruby 2.4+中的inject(:+)

我不确定您要问的是什么,但我的初步理解是,您希望对满足特定条件的范围(1..100)中的所有数字求和。 在这种情况下,除以2本身,除以2的东西不能等于0。 我想知道您是否表示%2,在这种情况下,您要求和1..100范围内的所有偶数。 这可以通过执行以下操作来完成。

    (1..100).select {|x| x if x.even?}.reduce(:+) 

实际上,您希望枚举一个范围,并仅选择满足条件的数字,如块中所指定。 调用reduce并将其传递给累加器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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