Я что-то упустил в документации по массиву? У меня есть массив, который содержит до одного объекта, удовлетворяющего определенному критерию. Я хотел бы эффективно найти этот объект. Лучшая идея, которую я получил из документации:
candidates = my_array.select { |e| e.satisfies_condition? }
found_it = candidates.first if !candidates.empty?
Но я неудовлетворен по двум причинам: (1) выбор заставил меня пересечь весь массив, даже если бы мы могли получить залог после первого попадания, и (2) мне понадобилась строка кода (с условием), чтобы сгладить кандидатов. Обе операции расточительны с предвидением, что есть 0 или 1 удовлетворяющих объектов.
Что бы я хотел, это что-то вроде:
array.find_first(block)
-> отвечает nil или первому объекту, для которого блок оценивается как true, заканчивая обход этого объекта.
Должен ли я написать это сам? Все эти замечательные методы в Array заставляют меня думать, что он там, и я просто не вижу его.
Заранее спасибо,
Dan