Introducción
En este laboratorio, exploraremos el concepto de dividir una iterable en arrays más pequeños de un tamaño especificado utilizando JavaScript. Implementaremos una función que tome una iterable y un parámetro de tamaño y devuelva una iterable de arrays más pequeños que contengan un máximo de elementos de tamaño cada uno. Esta técnica puede ser útil para diversas aplicaciones, como dividir grandes conjuntos de datos en trozos más pequeños para su procesamiento o optimizar solicitudes de red reduciendo la cantidad de datos transferidos a la vez.
Dividir en trozos una iterable
Para dividir una iterable en arrays más pequeños de un tamaño especificado, sigue estos pasos:
- Abre la Terminal/SSH y escribe
nodepara comenzar a practicar la codificación. - Utiliza un bucle
for...ofsobre la iterable dada, utilizandoArray.prototype.push()para agregar cada nuevo valor alchunkactual. - Verifica si el
chunkactual es del tamaño deseado utilizandoArray.prototype.lengthy devuelve el valor si es así. - Verifica el último
chunkutilizandoArray.prototype.lengthy devuélvelo si no está vacío. - Utiliza el siguiente código:
const chunkify = function* (itr, size) {
let chunk = [];
for (const v of itr) {
chunk.push(v);
if (chunk.length === size) {
yield chunk;
chunk = [];
}
}
if (chunk.length) yield chunk;
};
- Utiliza este código para probar la función:
const x = new Set([1, 2, 1, 3, 4, 1, 2, 5]);
[...chunkify(x, 2)]; // [[1, 2], [3, 4], [5]]
Resumen
¡Felicitaciones! Has completado el laboratorio de Dividir en trozos una iterable. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.