最佳答案
我在 Array 文档中遗漏了什么吗?我有一个数组,其中包含多达一个对象,满足一定的条件。我希望能有效地找到那个东西。我从医生那里得到的最好的建议是:
candidates = my_array.select { |e| e.satisfies_condition? }
found_it = candidates.first if !candidates.empty?
但我不满意有两个原因:
select
让我遍历了整个数组,即使我们可以在第一次撞击之后撤退。预先知道有0或1个令人满意的对象,这两种操作都是浪费。
我想要的是这样的:
array.find_first(block)
返回 nil 或块计算结果为 true 的第一个对象,结束该对象的遍历。
我一定要自己写吗?Array 中所有其他伟大的方法都让我觉得它就在那里,只是我没有看到而已。