2017-04-07 135 views

回答

-1

要检查,如果数组有一个空元素,的很多方法可以做到这一个是:

arr.any?(&:blank?) 
+0

只适用于导轨... – ddubs

+0

'空白?'与'空?'不同。 –

0

不知道你想要什么用它做,但也有相当多的这种猫的皮肤的方法。更多信息将有助于缩小它的一些...

["0", "108", "109", "110", "111", "112", "994", "995", "1001", "1002", "", "65534"].map { |v| v.empty? } 
=> [false, false, false, false, false, false, false, false, false, false, true, false] 

["0", "108", "109", "110", "111", "112", "994", "995", "1001", "1002", "", "65534"].each_with_index { |v,i| puts i if v.empty? } 
10 
+0

我需要检查空数组的索引值,并将其存储在像下面的代码检查userid在linux中的变量中。描述passwd.where {user =〜/.*/} .uids做 它的(“长度”){should_not eq 0} 结束 –

-1

这些测试的空虚:

'foo'.empty? # => false 
''.empty? # => true 

[1].empty? # => false 
[].empty? # => true 

{a:1}.empty? # => false 
{}.empty? # => true 

测试,看是否在数组中的元素为空,将使用类似的测试:

['foo', '', [], {}].select { |i| i.empty? } # => ["", [], {}] 
['foo', '', [], {}].reject { |i| i.empty? } # => ["foo"] 

,或者使用速记:

['foo', '', [], {}].select(&:empty?) # => ["", [], {}] 
['foo', '', [], {}].reject(&:empty?) # => ["foo"] 
+0

使用空?如果数组包含零,将导致崩溃 – s1mpl3

+0

这是真的,但是OP仅指定了对“空”节点而不是“无”节点的关注。 –

0
arr = [ "0", "108", "", [], {}, nil, 2..1, 109, 3.2, :'' ] 

arr.select { |e| e.respond_to?(:empty?) && e.empty? } 
    #=> ["", [], {}, :""] 
相关问题