Introducción
En este laboratorio, exploraremos el concepto de iteradores y generadores en JavaScript. En particular, nos centraremos en crear un iterador plano que pueda iterar sobre arrays y conjuntos anidados y aplanaarlos en un solo iterable. Esto nos permitirá acceder y manipular de manera eficiente estructuras de datos anidadas de manera más sencilla. Al final del laboratorio, tendrás una comprensión más profunda de cómo funcionan los generadores e iteradores y cómo se pueden aplicar para resolver problemas del mundo real.
Explicación del iterador plano
Para crear un generador que itere sobre un iterable y aplane los iterables anidados, siga estos pasos:
- Abra la Terminal/SSH y escriba
nodepara comenzar a practicar la codificación. - Utilice la recursividad en la función generadora.
- Utilice un bucle
for...ofpara iterar sobre los valores del iterable dado. - Utilice
Symbol.iteratorpara comprobar si cada valor es un iterable. - Si es así, utilice la expresión
yield*para delegar recursivamente a la misma función generadora. - De lo contrario,
yieldel valor actual.
A continuación, se muestra un fragmento de código de ejemplo:
const flatIterator = function* (itr) {
for (let item of itr) {
if (item[Symbol.iterator]) yield* flatIterator(item);
else yield item;
}
};
const arr = [1, 2, [3, 4], [5, [6, [7], 8]], 9, new Set([10, 11])];
[...flatIterator(arr)]; // 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
En el ejemplo, arr es un array de valores, que incluye arrays anidados y un conjunto. La función generadora flatIterator se utiliza para aplanar estos valores anidados y devolver un array aplanado.
Resumen
¡Felicidades! Has completado el laboratorio del iterador plano. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.