Ruby:如果条件在每个条件内

时间:2011-03-24 13:20:17

标签: ruby

我需要比较“each”条件中的数组元素,如下所示:

a = ["config_left","mon_left","acc_left",lg_left..]
a.each { |x| 
  ff.div(:id, x).fireEvent("onmouseup")
  if x == 1   ##<<<<<<<<<<<<is this right? 
    Watir::Waiter::wait_until{ff.button(:id, "add").enabled?}
  else
    sleep 7
end

x == 1是对的吗?试过x == "mon_left",但即使这样也行不通。请帮帮忙。

2 个答案:

答案 0 :(得分:5)

首先,您应该发布一个完整的示例 - 我必须在您的问题中修复至少3个语法错误。

其次,你说“它不起作用”是什么意思?这对我有用:

a = ["config_left","mon_left","acc_left","lg_left"]  
a.each_with_index do |x,i|  
  puts i if x == "mon_left"  
end

第三,您可能希望使用a.detect ...而不是每个/ if

答案 1 :(得分:0)

看起来你在谈论索引:

some_array.each{ | element, index| 
   do_something if index == 1
}

所以在你的情况下

a = ["config_left","mon_left","acc_left", "lg_left"] 
a.each { |x, i| 
  ff.div(:id, x).fireEvent("onmouseup")
  if i == 1   
      Watir::Waiter::wait_until{ff.button(:id, "add").enabled?}
  else
      sleep 7
  end
}