Ruby 可枚举取第一个元素直到不满足条件

Ruby enumerable take first elements until condition is not met

我构建了自己的 class 并使其可枚举,现在我想获取尽可能多的元素,从第一个元素开始,只要它们的总和不更高超过 10。我倾向于 take_while 但我不确定如何写它。

如果您有任何其他想法,我也愿意接受。提前致谢。

你可以这样做:

a = [1, 2, 13, 24, 5, 0]
sum = 0
a.take_while { |i| sum+=i; sum < 10  } 
#=> [1, 2]