Qual è il modo più veloce in Ruby per ottenere il primo elemento enumerabile per il quale un blocco restituisce true?Qual è il modo più veloce in Ruby per ottenere il primo elemento enumerabile per il quale un blocco restituisce true?
Ad esempio:
arr = [12, 88, 107, 500]
arr.select {|num| num > 100 }.first # => 107
mi piacerebbe fare questo senza che attraversa l'intero array, come select
volontà, dal momento che ho solo bisogno la prima partita.
So che potrei fare uno each
e interrompere il successo, ma ho pensato che esistesse un metodo nativo per farlo; Non l'ho trovato nella documentazione.
+1, mi sono completamente dimenticato di 'find', duh. –
Ah! 'find' era il metodo che stavo cercando di ricordare. Stupido me, stavo guardando i documenti per 'Array', non' Enumerable'. –
noto anche nel mondo Ruby come 'detect' – tokland