Est-ce que je manque quelque chose dans la documentation Array? J'ai un tableau qui contient jusqu'à un objet satisfaisant à un certain critère. J'aimerais trouver efficacement cet objet. La meilleure idée que j'ai de la documentation est la suivante:
candidates = my_array.select { |e| e.satisfies_condition? }
found_it = candidates.first if !candidates.empty?
Mais je ne suis pas satisfait pour deux raisons:
- Cela
select
m'a fait parcourir tout le tableau, même si nous aurions pu renflouer après le premier coup. - J'avais besoin d'une ligne de code (avec une condition) pour aplatir les candidats.
Les deux opérations sont inutiles avec la prescience qu'il y a 0 ou 1 objet satisfaisant.
Ce que je voudrais, c'est quelque chose comme:
array.find_first(block)
qui renvoie nil ou le premier objet pour lequel le bloc est évalué à vrai, mettant fin au parcours à cet objet.
Dois-je écrire cela moi-même? Toutes ces autres méthodes géniales dans Array me font penser que c'est là et je ne le vois tout simplement pas.