如何检查数组中的任何元素是否大于100?

Man*_*ngh 0 ruby

这应该回来了 true

array = [30, 40, 50, 100]
Run Code Online (Sandbox Code Playgroud)

这应该返回false:

array = [10, 20, 30, 40]
Run Code Online (Sandbox Code Playgroud)

是否存在预定义的功能?

Urs*_*sus 6

使用 any?

[30,40,50,100].any? { |item| item >= 100 } # => true
[10,20,30,40].any? { |item| item >= 100 } # => false
Run Code Online (Sandbox Code Playgroud)

请注意,即使在您的第一个示例中,没有任何元素大于100,我理所当然地认为您的意思是大于或等于100

  • Manish、`find` 和 `index` 也可以工作并且效率相似,尽管它们返回逻辑错误(“falsy”)值 `nil` 而不是 `false`,或整数,这是逻辑上true ("truthy") 值,而不是 `true`。逻辑假值是 Ruby 对象 `false` 和 `nil`。逻辑上真正的值是所有其他 Ruby 对象。然而,`any?` 读起来最好。`arr.max >= 100` 可以工作,但它的缺点是它会检查整个数组以找到最大值,而 `any?`(以及 `find` 和 `index`)在找到一个值时就结束了大于“100”。 (2认同)