2016-06-11 61 views
3

是否有軌函數來檢測["", "", ...](即僅包含空字符串或字符串的數組)作爲空Rails的方法檢測空字符串的陣列([「」,「」,...])作爲空

我的要求:

[""].foo? =>真

["", ""].foo? =>真

["lorem"].foo? =>假

["", "ipsum"].foo? => false

我試過使用array.reject!(&:empty?).blank?。它的工作,但這改變了我的陣列。我不希望我的數組被改變。請幫我找一個緊湊的方法。

+0

查找[陣列的疑難雜症:]此答案的(http://stackoverflow.com/a/888877/2767755)的一部分。 –

+0

這就是我正在尋找的東西。謝謝。 – PrathapB

回答

2

沒有一個單一的方法,但你可以使用.all?

["", nil].all?(&:blank?) # => true 
["ipsum", ""].all?(&:blank?) # => false 

或者您也可以使用.any?得到相反的結果。

["", nil].any?(&:present?) # => false 
["lorem", ""].any?(&:present?) # => true