Ruby enumerable获取第一个元素,直到不满足条件为止

Ruby enumerable获取第一个元素,直到不满足条件为止,ruby,enumerable,Ruby,Enumerable,我构建了自己的类,并使其可枚举,现在我希望从第一个元素开始,尽可能多地获取元素,只要它们的总和不超过10。我倾向于一个take_while,但我不知道怎么写 如果你还有其他想法,我也愿意接受。提前感谢。您可以这样做: a = [1, 2, 13, 24, 5, 0] sum = 0 a.take_while { |i| sum+=i; sum < 10 } #=> [1, 2] a=[1,2,13,24,5,0] 总和=0 a、 当{i | sum+=i;sum [1, 2]

我构建了自己的类,并使其可枚举,现在我希望从第一个元素开始,尽可能多地获取元素,只要它们的总和不超过10。我倾向于一个
take_while
,但我不知道怎么写


如果你还有其他想法,我也愿意接受。提前感谢。

您可以这样做:

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

你的问题看起来像是给我写代码。到目前为止您尝试了什么?您阅读了文档中的示例吗?是的,我不知道在满足条件后如何在块中执行其他操作,我尝试了
my_enum.take_while do | x | sum+x非常感谢,我一直在测试,发现我可以编写一个
do..end
块,里面有一个
if
,但是你的解决方案看起来好多了:)