Introdução
Neste laboratório, exploraremos o conceito de achatamento (flattening) de um array até uma profundidade especificada usando JavaScript. Aprenderemos como usar os métodos de recursão, reduce e concat para mesclar elementos ou arrays. Ao final deste laboratório, você será capaz de achatar arrays de forma eficiente e manipular estruturas de dados aninhadas em JavaScript.
Como Achatar um Array com JavaScript
Para achatar um array até uma profundidade especificada em JavaScript, siga estes passos:
- Abra o Terminal/SSH e digite
nodepara começar a praticar a codificação. - Use a função
flattencom dois argumentos:arr(o array a ser achatado) edepth(o número máximo de níveis aninhados a serem achatados). - Dentro da função
flatten, use recursão para decrementardepthem1para cada nível de profundidade. - Use
Array.prototype.reduce()eArray.prototype.concat()para mesclar elementos ou arrays. - Adicione um caso base para quando
depthfor igual a1para parar a recursão. - Omita o segundo argumento,
depth, para achatar apenas até uma profundidade de1(achatamento simples).
Aqui está o código para a função flatten:
const flatten = (arr, depth = 1) =>
arr.reduce(
(a, v) =>
a.concat(depth > 1 && Array.isArray(v) ? flatten(v, depth - 1) : v),
[]
);
Você pode testar a função flatten com os seguintes exemplos:
flatten([1, [2], 3, 4]); // [1, 2, 3, 4]
flatten([1, [2, [3, [4, 5], 6], 7], 8], 2); // [1, 2, 3, [4, 5], 6, 7, 8]
Resumo
Parabéns! Você concluiu o laboratório de Achatamento de Array. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.