如何在Ruby中检查数组元素是否为空?如何在Ruby中检查数组元素是否为空?
passwd.where { user =~ /.*/ }.uids
=> ["0", "108", "109", "110", "111", "112", "994", "995", "1001", "1002", "", "65534"]
如何在Ruby中检查数组元素是否为空?如何在Ruby中检查数组元素是否为空?
passwd.where { user =~ /.*/ }.uids
=> ["0", "108", "109", "110", "111", "112", "994", "995", "1001", "1002", "", "65534"]
不知道你想要什么用它做,但也有相当多的这种猫的皮肤的方法。更多信息将有助于缩小它的一些...
["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
我需要检查空数组的索引值,并将其存储在像下面的代码检查userid在linux中的变量中。描述passwd.where {user =〜/.*/} .uids做 它的(“长度”){should_not eq 0} 结束 –
这些测试的空虚:
'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"]
使用空?如果数组包含零,将导致崩溃 – s1mpl3
这是真的,但是OP仅指定了对“空”节点而不是“无”节点的关注。 –
arr = [ "0", "108", "", [], {}, nil, 2..1, 109, 3.2, :'' ]
arr.select { |e| e.respond_to?(:empty?) && e.empty? }
#=> ["", [], {}, :""]
任何元素?所有元素?没有? – spickermann