2014-09-24 42 views
2

我在Ruby中有一個對象數組。我想傳遞每個表達式/塊,看塊是否評估爲真。我感興趣的結果是所有數組元素均爲真的情況。確定在Ruby中所有數組元素的表達式是否爲真

現在我已經用計數器編碼了。我在數組上使用.each,計算表達式,如果表達式爲真,則遞增計數器,然後檢查計數器與數組大小。

這讓我很累,甚至不能形容它:)這感覺非常笨重,所以我希望有一個更簡潔的Ruby成語。

+0

通知'a.all之間的symetry? {| e | f(e)}'和'a.any? {| e | !f(e)}'。 – 2014-09-24 15:08:06

回答

5

使用Enumerable#all?

[1, 2, 3].all? { |x| x > 1 } 
# => false 
[1, 2, 3].all? { |x| x >= 1 } 
# => true 
+0

美麗。知道它必須在那裏。 – 2014-09-24 13:23:27

+0

@SteveLane請閱讀[Enumerable](http://ruby-doc.org/core-2.1.3/Enumerable.html)中的各種方法,因爲那裏有非常豐富的工具箱。 – tadman 2014-09-24 15:22:49

相關問題