获取循环的数组值

时间:2012-02-07 19:32:10

标签: ruby-on-rails ruby for-loop each

我有阵列

numbers = [ 1, 2, 3, 4, 5, 6 ]

我有一个变量:

number = 4

我希望循环for或每个块返回false,除非这种情况下的数字4存在于数组中。

numbers.each do |number_loop| 
    return false unless number_loop == number   
end

但是我收到了一个错误:

LocalJumpError:意外返回     from(irb):25:在`block in irb_binding'

3 个答案:

答案 0 :(得分:1)

除非您在此处隐藏的块中执行其他操作,否则您为什么不这样做:

return false if numbers.include? number

至于你得到LocalJumpError的原因:如果你的代码不在某个方法中,那么就没有任何东西可以返回(或换句话说:没有什么可以回到)。在这种情况下,您可能尝试设置变量而不是返回,并且您希望这样做:

is_included = numbers.include? number

答案 1 :(得分:0)

尝试:

 numbers.include?(number)

它应该有用。

答案 2 :(得分:0)

正如其他人所说,您应该使用#include?来检查是否包含在内。另请查看#any?#all?,它们可用于检查集合中的任何或所有元素是否与某个块匹配。