是否有任何方法可以告诉数组或散列的其中一个元素是否为nil?
答案 0 :(得分:5)
对于数组
array = [1, 2, 'a']
array.any?(&:nil?)
#=> false
对于哈希,我猜你在谈论零值。
hash = {:a => 1, :b => 2, :c => nil}
hash.value?(nil)
#=> true
答案 1 :(得分:1)
您可以使用any?
方法:http://ruby-doc.org/core-1.9.3/Enumerable.html#method-i-any-3F
例如:arr.any? { |x| x.nil? }
答案 2 :(得分:1)
正如oldgod和strmstn指出你应该使用any,并且在块内部条件中你可以验证一个元素是nil
还是它的类是Hash
[1,2,nil].any? {|x| x.class == Hash or x.nil? } # => true
[1,2,{}].any? {|x| x.class == Hash or x.nil? } # => true