Ruby:从2d数组中的每个子数组中获取第n个元素

Dac*_*ace 1 ruby unit-testing watir watir-webdriver

作为我们Watir测试套件的一部分,我们正在验证数据表.其中一个要求是特定列必须为空(除非选择了特定的单选按钮)所以在我的脚本中,我有以下代码

incidents = browser.table(:xpath, Xpath_CC).strings 
Run Code Online (Sandbox Code Playgroud)

浏览器是watir-webdriver浏览器对象在事件中提供我的这个2d数组

[["DateTime", "Problem", "Value", "Compared", "Number", "Causes", "Where", "Count", "Type"],
["May 07, 02:15 - 02:30", "Web", "38.46 %", "", "1", "UNKNOWN", "", "1", "J105"],
["May 07, 02:15 - 02:30", "Video", "40 %", "", "1", "UNKNOWN", "", "1", "J105"],
["May 07, 02:00 - 02:15", "Email", "30 %", "", "1", "UNKNOWN", "", "1", "J105"],
["May 07, 01:00 - 01:15", "Email", "70 %", "", "1", "UNKNOWN", "", "1", "J105"],
["May 07, 01:00 - 01:15", "Email", "70 %", "", "1", "UNKNOWN", "", "1", "J105"],
["May 07, 01:00 - 01:15", "Email", "0 %", "", "1", "UNKNOWN", "", "1", "J105"],
]]
Run Code Online (Sandbox Code Playgroud)

我需要做的是检查每个子数组中的每个"比较"列,并确保它是空的.我可以做点什么

 result = true
 incidents.each do |row|
   if (row[3] != '')
    result = false
  end
end
Run Code Online (Sandbox Code Playgroud)

把那是我的Java大脑告诉我该怎么做.我认为必须有一个更简单的一线红宝石方式来做到这一点

Vic*_*gin 6

一内胆:

result = incidents.all? { |row| row[3].empty? }
Run Code Online (Sandbox Code Playgroud)

要跳过标题信息:

result = incidents[1..-1].all? { |row| row[3].empty? }
Run Code Online (Sandbox Code Playgroud)