Dizi belgelerinde bir şey mi eksik? Belirli bir kriteri tatmin eden bir nesneye kadar içeren bir dizi var. Bu nesneyi verimli bir şekilde bulmak istiyorum. Dokümanlardan aldığım en iyi fikir şudur:
candidates = my_array.select { |e| e.satisfies_condition? }
found_it = candidates.first if !candidates.empty?
Ama iki nedenden dolayı memnun değilim:
- Bu
select
, ilk vuruştan sonra kefaletle olsa bile, tüm diziyi geçmemi sağladı. - Adayları düzleştirmek için bir kod satırı (şartlı) gerekiyordu.
Her iki işlem de 0 veya 1 tatmin edici nesne olduğunu önceden bilerek israf ediyor.
Ne istiyorum gibi bir şey:
array.find_first(block)
bu da nil veya bloğun true olarak değerlendirildiği ilk nesneyi döndürerek o nesnede geçişi sonlandırır.
Bunu kendim mi yazmalıyım? Array'daki diğer tüm harika yöntemler bana orada olduğunu düşündürüyor ve görmüyorum.