2016-06-11 56 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