Introdução
Neste laboratório, exploraremos como particionar um array com base em uma função fornecida usando JavaScript. Usaremos o método Array.prototype.reduce() para acumular os valores particionados em um array, enquanto verificamos as mudanças na saída da função fornecida. Ao final deste laboratório, você terá uma sólida compreensão de como particionar arrays em JavaScript.
Algoritmo de Particionamento de Array
Para particionar um array, siga estes passos:
- Abra o Terminal/SSH e digite
nodepara começar a praticar a codificação. - Aplique a função fornecida
fna cada valor no arrayarrfornecido. - Divida o array cada vez que
fnretornar um novo valor. - Use
Array.prototype.reduce()para criar um objeto acumulador que armazena o array resultante e o último valor retornado defn. - Use
Array.prototype.push()para adicionar cada valor emarrà partição apropriada no array acumulador. - Retorne o array resultante.
Aqui está a implementação do código:
const partitionBy = (arr, fn) =>
arr.reduce(
({ res, last }, v, i, a) => {
const next = fn(v, i, a);
if (next !== last) res.push([v]);
else res[res.length - 1].push(v);
return { res, last: next };
},
{ res: [] }
).res;
Exemplo de uso:
const numbers = [1, 1, 3, 3, 4, 5, 5, 5];
partitionBy(numbers, (n) => n % 2 === 0); // [[1, 1, 3, 3], [4], [5, 5, 5]]
partitionBy(numbers, (n) => n); // [[1, 1], [3, 3], [4], [5, 5, 5]]
Resumo
Parabéns! Você concluiu o laboratório de Particionamento de Array. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.