Dividindo Iteráveis em Arrays Menores

Beginner

This tutorial is from open-source community. Access the source code

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:

  1. Abra o Terminal/SSH e digite node para começar a praticar a codificação.
  2. Use um loop for...of sobre o iterável fornecido, usando Array.prototype.push() para adicionar cada novo valor ao chunk (bloco) atual.
  3. Verifique se o chunk atual tem o size (tamanho) desejado usando Array.prototype.length e use yield para retornar o valor, caso seja verdade.
  4. Verifique o chunk final usando Array.prototype.length e use yield para retorná-lo se não estiver vazio.
  5. 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;
};
  1. 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.