Como achatar uma matriz JavaScript aninhada

Como achatar uma matriz JavaScript aninhada
JavaScript Array tem a capacidade de armazenar várias matrizes em si. Quando uma matriz ou sub-matriz interna é adicionada a uma matriz, ela é conhecida como um “Multidimensional" ou "Aninhado " variedade. Existem certos cenários em que você pode precisar criar uma matriz que compreenda todos os elementos de matriz JavaScript aninhados em sua ordem original. Se for esse o caso, então achatado a matriz aninhada criada e reduz sua dimensionalidade de acordo com o especificado profundidade.

Este post explicará os métodos para achatado a Array JavaScript aninhado. Mas antes de pular nele, explicaremos o termo “profundidade”Como está associado ao procedimento de achatamento.

Profundidade da matriz JavaScript aninhada

A operação de adicionar uma matriz interna ou aninhar uma matriz em incrementos normais de matriz “1" no nível de profundidade. Por exemplo, sem array aninhado, uma matriz normal terá um “0”Nível de profundidade:

[12, 23, 34, 45, 56, 67, 78] // nível de profundidade = 0

Com uma sub-matriz interna, o nível de profundidade se tornará “1”:

[12, 23, 34, [45, 56, 67, 78]] // nível de profundidade = 1

Da mesma forma, aumentar o número de sub-matrizes internas também aumentará o nível de profundidade:

[12, 23, [34, [45, 56, 67, 78]]] // nível de profundidade = 2
[12, [23, [34, [45, 56, 67, 78]]] // nível de profundidade = 3

Agora, confira o método de achatar uma matriz na versão JavaScript antes do ES6.

Como achatar uma matriz JavaScript aninhada usando o método concat () e espalhar o operador […]

A combinação de “concat ()”Método e“Operador espalhado […]”O método é usado para achatar uma matriz JavaScript aninhada da maneira que o operador de propagação […] espalhe os elementos da matriz especificada e depois os concatença em uma matriz vazia usando o método javascript concat ():

deixe a matriz = [12, 23, [43, 34, 56]];
Deixe flatArray = [].concat (… matriz);
console.log (flatArray);

Saída

No entanto, essa abordagem apenas nivela as matrizes de nível um aninhadas:

const numArray = [12, 23, [34, 45, 56, [67, 78]]];
Deixe flatArray = [].concat (… numArray);
console.log (flatArray);

O código acima dado adicionará a matriz interna de “NumArray"Como um todo para"FLARARY”Como não pode espalhar seus elementos:

E se você tiver que achatar uma matriz profundamente aninhada? Para fazer isso, você pode utilizar o “Variedade.achaten ()”Método oferecido pela versão do ES6 JavaScript.

Como achatar uma matriz JavaScript aninhada usando a matriz.Método Flat ()

O "Variedade.plano()”O método está incorporado em ES6 que permite que você “achatado”Uma matriz JavaScript aninhada. Este método retorna uma nova matriz na qual todos os elementos de sub-maiores são concatenados de acordo com a profundidade especificada.

Sintaxe da matriz.Método plano () para achatar uma matriz JavaScript aninhada

Deixe NewArray = Array.plano ([profundidade])

Aqui o "Variedade”Objeto invocará o“plano()Método enquanto passava “profundidade”Como argumento.

Agora vamos verificar alguns exemplos para entender o conceito declarado.

Exemplo 1: Como achatar uma matriz JavaScript aninhada com uma profundidade de um nível

Primeiro de tudo, criaremos uma matriz JavaScript aninhada com os seguintes elementos e uma sub-matriz:

const numArray = [12, 23, [34, 45, 56]];

Então, vamos achatar os aninhados criados “NumArray”Com a ajuda do“plano()”Método:

const flatArray = numArray.plano();
console.log (flatArray);

Nós não passamos o “profundidade”Argumento, então o“NumArray.plano()”Considerará o valor da profundidade padrão, que é“1”E concatena os elementos de matriz aninhados JavaScript 34, 45, 56 para o recém -criado “FLARARY”:

Exemplo 2: Como achatar uma matriz JavaScript aninhada com profundidade de dois níveis

No exemplo seguinte, especificaremos “2" Enquanto o "profundidade" nível. Ao fazer isso "NumArray.plano()”Apontará os dois sub-maiores de dois sub-maiores e adicionará seus elementos no resultante“flatArray ()”:

const numArray = [12, 23, [34, 45, 56, [67, 78]]];
const flatArray = numArray.plano (2);
console.log (flatArray);

A execução do programa especificado mostrará a seguinte saída:

Exemplo 3: Como achatar uma matriz JavaScript aninhada sem saber o nível de profundidade

Se você não tem ideia do nível de profundidade da matriz, passe “infinidade"Como um argumento para o"Variedade.plano()”Método. Nesse caso, todos os sub-maiores elementos são “recursivamente”Concatenou em outra matriz.

Por exemplo, para achatar o abaixo-dado “NumArray", Especificaremos"infinidade”No lugar do argumento do nível da profundidade:

const numArray = [12, 23, [34, 45, 56, [67, 78, [89, 90]]]];
const flatArray = numArray.plano (infinito);
console.log (flatArray);

Como você pode ver, o “NumArray.plano()”O método achatou com sucesso o aninhado“NumArray”:

Essa foi todas as informações essenciais relacionadas ao achatamento de uma matriz em JavaScript. Você pode trabalhar mais nisso de acordo com suas preferências.

Conclusão

O Variedade.plano() O método é usado principalmente para achatar uma matriz JavaScript aninhada. Aceita o profundidade nível como argumento e retorna uma nova matriz na qual todos os elementos de sub-maiores são concatenados de acordo com a profundidade especificada. Antes do ES6, a combinação de alguns métodos internos, como concat () e Operador espalhado […] só pode achatar a matriz de nível um; No entanto, o Variedade.plano() o método auxilia em achatar matrizes profundamente aninhadas. Este artigo explicou o procedimento para achatar uma matriz em JavaScript.