Introducción
En este laboratorio, exploraremos cómo crear una función generadora en JavaScript que produzca nuevos valores mientras se cumpla una condición dada. Utilizaremos la función generateWhile que toma un valor semilla, una función de condición y una función siguiente para calcular el siguiente valor a partir del valor actual y la siguiente semilla. Al final de este laboratorio, serás capaz de crear generadores personalizados que se pueden utilizar para producir valores basados en condiciones y reglas específicas.
Generador que Produce Valores Mientras una Condición Sea Verdadera
Para comenzar a codificar, abre la Terminal/SSH y escribe node. Esto creará un generador que seguirá produciendo nuevos valores siempre que se cumpla la condición dada.
El generador se inicializa con un valor seed, que se utiliza para inicializar el val actual. Luego, se utiliza un bucle while para iterar mientras la función condition llamada con el val actual devuelva true.
La palabra clave yield se utiliza para devolver el val actual y, opcionalmente, recibir un nuevo valor de semilla, nextSeed. La función next se utiliza para calcular el siguiente valor a partir del val actual y el nextSeed.
const generateWhile = function* (seed, condition, next) {
let val = seed;
let nextSeed = null;
while (condition(val)) {
nextSeed = yield val;
val = next(val, nextSeed);
}
return val;
};
Para usar el generador, llámalo con las funciones seed, condition y next. Por ejemplo, llamar a [...generateWhile(1, v => v <= 5, v => ++v)] devolverá [1, 2, 3, 4, 5].
Resumen
¡Felicidades! Has completado el laboratorio Generar Mientras se Cumpla la Condición. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.