2014-12-20 93 views
0

我正在使用excel電子表格(使用電子表格gem),並且對於某些行,某些列中會有數據缺失。如果數組中的某些元素爲零,則返回true

我想返回true,如果列3到行(包含)的最後一列都沒有值。

這裏是我的方法:

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

始終方法返回false但是,即使特定行3列和高達所有列,幷包括最後一欄是空的。當我的意思是空的時候,我的意思是空/無(這些列沒有寫過任何內容),甚至沒有空字符串''。

+0

在數組範圍的索引'3'?舉一個'row'的例子。 –

+0

甲行是一個數組,列0索引: 山口1:用戶名, 第2欄第:ID, COL 3:時間戳, 第4欄:數據類型1, 第5欄:數據類型2, 等等@餘浩 – MMP

+0

一個例子就是它像'[1,2,3]'或'[1,2,nil,nil,nil]'。 –

回答

4

我會做這樣的事情:

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

對於compact的粉絲:'row [2 ..- 1] .compact.empty?'但是會慢一點。 – Humza

0

對於任何陣列arr,是nil如果arr[i..j]所有值:

arr[i..j].compact.empty? 
相關問題