如何判断Ruby数组中是否存在大于等于100的元素
用Ruby简洁判断数组中是否存在≥100的元素
嘿,这个需求用Ruby自带的方法就能轻松搞定,比你说的select后统计数量简洁太多啦!
Ruby的Array类提供了一个专门的方法——any?,它的作用就是检查数组中是否至少有一个元素满足指定条件,完全匹配你要的判断逻辑。
针对你给出的数组[5, 20, 13, 100],直接这么写就行:
arr = [5, 20, 13, 100] arr.any? { |num| num >= 100 } # 返回 true
如果数组里没有任何≥100的元素,这个方法会直接返回false。
为什么这个方法更优?
- 效率更高:
any?在找到第一个符合条件的元素后就会立刻停止遍历,不用像select那样遍历整个数组并收集所有符合条件的元素,数组越大,这个性能优势越明显; - 代码更直观:一眼就能看出你是在判断“是否存在满足条件的元素”,可读性拉满。
要是你以后遇到判断是否存在某个特定值的场景,还可以直接给any?传参数,比如arr.any?(100),但你这次是判断≥100,用块的形式就刚好合适。
内容的提问来源于stack exchange,提问作者Shpigford
相关产品推荐
相关产品推荐

