¿Me falta algo en la documentación de Array? Tengo una matriz que contiene hasta un objeto que cumple un determinado criterio. Me gustaría encontrar eficientemente ese objeto. La mejor idea que tengo de la documentación es la siguiente:Ruby Array find_first object?
candidates = my_array.select { |e| e.satisfies_condition? }
found_it = candidates.first if !candidates.empty?
Pero estoy satisfecho por dos razones: (1) que seleccionan me hizo recorro todo el conjunto, a pesar de que podríamos haber rescatado después del primer golpe, y (2) Necesitaba una línea de código (con una condición) para aplanar a los candidatos. Ambas operaciones son un desperdicio con el conocimiento previo de que hay 0 o 1 objetos satisfactorios.
Lo que me gustaría es algo así como:
array.find_first(block)
-> respuestas nulas o el primer objeto para el cual el bloque se evalúa como verdadera, terminando el recorrido en ese objeto.
¿Debo escribir esto yo mismo? Todos esos otros excelentes métodos en Array me hacen pensar que está ahí y que simplemente no lo estoy viendo.
Gracias de antemano, Dan
Nop. Creo que lo has entendido Gracias (y a los demás). No vi ninguno de los métodos Enumerables. Eso es justo lo que necesitaba. Lamento molestarte. –
No hay problema, a menudo me molesta que la documentación de ruby no enumere los métodos de todas las clases y módulos heredados o incluidos. –
más información: '[1,2,3,5,2] .find {| n | pone n; n == 2} 'la iteración se detiene una vez que encuentra el primer elemento con el que coincide. – rajuGT