【问题标题】:get array value for loop获取循环的数组值
【发布时间】:2012-02-29 06:08:18
【问题描述】:

我有数组

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

我有一个变量:

number = 4

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

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

但我得到一个错误:

LocalJumpError:意外返回 来自 (irb):25:in `block in irb_binding'

【问题讨论】:

  • 是否为了在此处发布而对代码进行了混淆处理?因为有更好的方法来确定一个数组是否包含一个值。
  • 你认为你是从哪里回来的?

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


【解决方案1】:

试试看:

 numbers.include?(number)

它应该可以工作。

【讨论】:

    【解决方案2】:

    除非你在块中做一些你隐藏在此处发布的其他事情,否则你为什么不这样做:

    return false if numbers.include? number
    

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

    is_included = numbers.include? number
    

    【讨论】:

    • 谢谢,它运行良好。这个回应太完美了。谢谢
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2016-10-17
      • 2016-03-23
      • 1970-01-01
      • 2017-06-26
      • 1970-01-01
      • 2017-08-15
      • 1970-01-01
      • 2018-07-15
      • 1970-01-01
      相关资源
      最近更新 更多