如何找到符合特定条件的Ruby数组中的第一个元素?

时间:2016-11-17 22:23:51

标签: ruby-on-rails arrays ruby ruby-on-rails-4

我正在使用Rails 4.2.7。我想在我的对象数组中找到第一个项目,其字段符合特定条件。所以我写了这个冗长的循环...

    result = nil
    results.each do |r|
      if r.valid?
        result = r 
        break
      end
    end

我的问题是,有更短的方法吗?

2 个答案:

答案 0 :(得分:1)

是的,有:

    return Json(yourObjectData, JsonRequestBehavior.AllowGet);

https://ruby-doc.org/core-2.2.3/Enumerable.html#method-i-find

感谢Rashmirathi的&符号&冒号捷径!

答案 1 :(得分:0)

您可以尝试使用Array方法选择

results = [{id: 1, valid: true}, {id: 2, valid: false}, {id:3, valid: true}]
result = results.select { |item|  item[:valid] == true}.first

您可以在阵列文档中找到更多信息:https://ruby-doc.org/core-2.2.0/Array.html#method-i-select