Ruby 如果数组的某些元素为nil,则返回true

Ruby 如果数组的某些元素为nil,则返回true,ruby,arrays,null,Ruby,Arrays,Null,我正在使用excel电子表格(使用电子表格gem),对于某些行,某些列中会缺少数据 如果行(包括行)最后一列的第3列都没有值,我想返回true 以下是我的方法: def self.cells_empty(row) if row[3..-1] == nil return true else return false end end 但是,该方法始终返回false,即使对于特定的行、列3以及直到并包括最后一列的所有列都为空。当我的意思是empty时,我的意

我正在使用excel电子表格(使用电子表格gem),对于某些行,某些列中会缺少数据

如果行(包括行)最后一列的第3列都没有值,我想返回true

以下是我的方法:

def self.cells_empty(row)
   if row[3..-1] == nil
      return true
   else
      return false
   end
end

但是,该方法始终返回false,即使对于特定的行、列3以及直到并包括最后一列的所有列都为空。当我的意思是empty时,我的意思是empty/nil(这些列中从未写入任何内容),甚至没有空字符串“”。

我会这样做:

row[2..-1].all?(&:nil?)

我会这样做:

row[2..-1].all?(&:nil?)

对于任何数组
arr
arr[i..j]
的所有值都是
nil
,如果:

arr[i..j].compact.empty?

对于任何数组
arr
arr[i..j]
的所有值都是
nil
,如果:

arr[i..j].compact.empty?

索引
3
是否在数组的范围内?举一个
的例子。行是一个数组,列是0索引的:第1列:用户名,第2列:id,第3列:时间戳,第4列:数据类型1,第5列:数据类型2等等@Yu HaoAn举个例子,它像
[1,2,3]
还是
[1,2,nil,nil,nil]
。索引
3
在数组的范围内吗?举一个
的例子。行是一个数组,列是0索引的:列1:username,列2:id,列3:timestamp,列4:data type 1,列5:data type 2,等等@Yu HaoAn的例子是它像
[1,2,3]
[1,2,nil,nil,nil]
。对于compact的粉丝来说:
行[2..-1]。compact.empty?
会比较慢,但是。对于compact的风扇:
行[2..-1]。compact.empty?
将更慢。