takeWhile
Emite valores mientras un predicado devuelva true; después se detiene definitivamente.
Lección
Donde take cuenta valores, takeWhile los pone a prueba.
Emite los elementos de uno en uno y para en el instante en que
f devuelve false: nunca mira más allá de ese punto, aunque un
elemento posterior sí habría pasado. Eso lo hace ideal para situaciones de
«consume hasta que los datos dejen de tener sentido»: un stream ordenado
hasta un umbral, un log hasta la primera anomalía, etc.
Como es perezoso y cortocircuita en el primer fallo, resulta barato de ejecutar incluso sobre una fuente enorme o infinita: solo evalúa el prefijo que realmente coincide.
Demo 1 · Fundamentos
Fíjate en que el 2 del final nunca tiene oportunidad: el
predicado ya falló en el 7:
Demo 2 · Asíncrono
Pruébalo tú
Ejercicio: conserva las temperaturas solo mientras se mantengan por debajo de 25.
take — toma por cantidad en lugar de por predicado ·
takeUntilInclusive — para después de la coincidencia, incluyéndola ·
dropWhile — el inverso ·
filter — conserva las coincidencias en todas partes, no solo en un prefijo