2015-10-24 69 views
-1

我建立我自己的類和我做了它枚舉的,現在我要帶一樣多的元素可能,從第一個開始,只要我們說他們的總和不高於10.我傾向於take_while,但我不確定如何編寫它。紅寶石枚舉採取第一要素,直到條件不滿足

如果您有任何其他想法,我願意接受他們。提前致謝。

+1

你的問題看起來像me__ __write代碼。你試過什麼了? –

+0

您是否在文檔中閱讀了['take_while']的示例(http://ruby-doc.org/core-2.2.3/Enumerable.html#method-i-take_while)? – shivam

+0

是的,我不知道如何滿足條件後,做一些在別的塊,我試圖與 'my_enum.take_while做| X | 總和+ X <= 10 總和+ = X end'(我總和定義爲0之前) – Robert

回答

2

你可以這樣來做:

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

非常感謝,我不停測試,發現可以寫一個'do..end'塊與'如果'裏面,但你的解決方案看起來好多了:) – Robert