Secuencias sin fin
JavaScript · Unidad 16: Iteradores y generadores
- Plan completo
- JavaScript
- 10 ejercicios
Un generador puede no terminar nunca: un while (true) adentro entrega valores mientras se los pidan. No se queda pegado, porque solo trabaja cuando alguien pide.
El que tiene que parar es quien lo recorre, con un break. Sin ese break, el programa sí se cuelga.
function* naturales() {
let n = 1;
while (true) {
yield n;
n++;
}
}
for (const n of naturales()) {
if (n > 3) break;
console.log(n);
}Imprime
1 2 3
El resto de la explicación está en la lección, que es del plan completo.
Ejercicios de esta lección
Se hacen en la app, que los corrige al momento y explica por qué.
1. Predice la salida
¿Qué imprime este código?
2. Completa el código
Completa para que sume los números hasta el 4 y se detenga.
3. Predice la salida
¿Qué imprime este código?
4. Predice la salida
¿Qué imprime este código?
5. Encuentra el bug
Debería imprimir los tres primeros números pares: 2, 4 y 6. ¿Qué línea tiene el error?
6. Completa el código
Completa para que el generador entregue impares mientras se los pidan.
7. Opción múltiple
naturales()entrega 1, 2, 3… sin terminar nunca. ¿Qué pasa si escribes[...naturales()]?8. Encuentra el caso que falla
tomaPares(xs, n)debería regresar los primerosnpares dexs, o los que haya si hay menos den. ¿Con qué llamada falla?9. Opción múltiple
¿Qué entrega este generador?
10. Predice la salida
¿Qué imprime este código?
Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.