Я щось пропускаю в документації на масив? У мене є масив, який містить до одного об'єкта, що відповідає певному критерію. Я хотів би ефективно знайти цей об’єкт. Найкраща ідея, яку я маю в документах, така:
candidates = my_array.select { |e| e.satisfies_condition? }
found_it = candidates.first if !candidates.empty?
Але я незадоволений з двох причин:
- Це
select
змусило мене об'їхати весь масив, хоча ми могли врятувати після першого влучення. - Мені знадобився рядок коду (з умовою), щоб вирівняти кандидатів.
Обидві операції марні, маючи передбачення, що 0 або 1 задовольняючих об'єктів.
Мені б хотілося щось таке:
array.find_first(block)
який повертає нуль або перший об'єкт, для якого блок оцінює істинне, закінчуючи обхід цього об'єкта.
Повинен я сам це написати? Усі ці чудові методи в Array змушують мене думати, що він є, і я просто не бачу цього.