Introdução
Neste laboratório, exploraremos o conceito de chunking (divisão em blocos) de um iterável em arrays (vetores) menores de um tamanho especificado usando JavaScript. Implementaremos uma função que recebe um iterável e um parâmetro de tamanho e retorna um iterável de arrays menores que contêm no máximo um número de elementos igual ao tamanho especificado. Essa técnica pode ser útil para várias aplicações, como dividir grandes conjuntos de dados em blocos menores para processamento ou otimizar requisições de rede, reduzindo a quantidade de dados transferidos de uma só vez.
Chunk Iterable (Iterável em Blocos)
Para dividir um iterável em arrays menores de um tamanho especificado, siga estes passos:
- Abra o Terminal/SSH e digite
nodepara começar a praticar a codificação. - Use um loop
for...ofsobre o iterável fornecido, usandoArray.prototype.push()para adicionar cada novo valor aochunk(bloco) atual. - Verifique se o
chunkatual tem osize(tamanho) desejado usandoArray.prototype.lengthe useyieldpara retornar o valor, caso seja verdade. - Verifique o
chunkfinal usandoArray.prototype.lengthe useyieldpara retorná-lo se não estiver vazio. - Use o seguinte 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;
};
- Use este código para testar a função:
const x = new Set([1, 2, 1, 3, 4, 1, 2, 5]);
[...chunkify(x, 2)]; // [[1, 2], [3, 4], [5]]
Resumo
Parabéns! Você concluiu o laboratório Chunk Iterable (Iterável em Blocos). Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.