Cómo aplanar una matriz de JavaScript anidada

Cómo aplanar una matriz de JavaScript anidada
JavaScript Array tiene la capacidad de almacenar múltiples matrices en sí mismo. Cuando se agrega una matriz o subrainal interna a una matriz, se conoce como un "Multidimensional" o "Anidado" formación. Existen ciertos escenarios en los que es posible que necesite crear una matriz que comprenda todos los elementos de matriz de JavaScript en su orden original. Si ese es el caso, entonces aplanar la matriz anidada creada y reducir su dimensionalidad de acuerdo con la especificada profundidad.

Esta publicación explicará los métodos para aplanar a Matriz de JavaScript anidada. Pero antes de saltar a él, explicaremos el término "profundidad"Como está asociado con el procedimiento de aplanamiento.

Profundidad de la matriz de JavaScript anidada

La operación de agregar una matriz interna o anidar una matriz en incrementos de matriz normal "1" en el nivel de profundidad. Por ejemplo, sin una matriz anidada, una matriz normal tendrá un "0"Nivel de profundidad:

[12, 23, 34, 45, 56, 67, 78] // nivel de profundidad = 0

Con un sub-matriz interno, el nivel de profundidad se convertirá en "1":

[12, 23, 34, [45, 56, 67, 78]] // nivel de profundidad = 1

Del mismo modo, aumentar el número de sub-matrices internos también aumentará el nivel de profundidad:

[12, 23, [34, [45, 56, 67, 78]]] // nivel de profundidad = 2
[12, [23, [34, [45, 56, 67, 78]]]] // nivel de profundidad = 3

Ahora, consulte el método de aplanar una matriz en la versión de JavaScript antes de ES6.

Cómo aplanar una matriz de JavaScript anidada utilizando el método concat () y el operador de propagación […]

La combinación de "concat ()"Método y"Operador de propagación […]"El método se utiliza para aplanar una matriz de JavaScript anidada de la misma manera que el operador de propagación [...] extiende los elementos de la matriz especificada y luego los concatene en una matriz vacía utilizando el método JavaScript Concat ():

Let Array = [12, 23, [43, 34, 56]];
Deje que FlatArray = [].concat (... matriz);
consola.log (FlatArray);

Producción

Sin embargo, este enfoque solo aplana las matrices anidadas de nivel uno:

const nuarray = [12, 23, [34, 45, 56, [67, 78]]];
Deje que FlatArray = [].concat (... numArray);
consola.log (FlatArray);

El código dado anteriormente agregará la matriz interna de "numarray"En general a"estatriz"Como no puede difundir sus elementos:

¿Qué pasa si tienes que aplanar una matriz profundamente anidada?? Para hacerlo, puedes utilizar el "Formación.aplanar()Método ofrecido por la versión ES6 JavaScript.

Cómo aplanar una matriz de JavaScript anidada usando una matriz.método plano ()

El "Formación.departamento()El método está incrustado en ES6 que te permite "aplanar"Una matriz de JavaScript anidada. Este método devuelve una nueva matriz en la que todos los elementos de las sub-matrices se concatenan de acuerdo con la profundidad especificada.

Sintaxis de matriz.Método plano () para aplanar una matriz de JavaScript anidada

Deja que NewArray = Array.plano ([profundidad])

Aquí el "Formación"El objeto invocará el"departamento()"Método mientras pasa"profundidad"Como argumento.

Ahora revisemos algunos ejemplos para comprender el concepto declarado.

Ejemplo 1: Cómo aplanar una matriz de JavaScript anidada con una profundidad de nivel

En primer lugar, crearemos una matriz de JavaScript anidada que tenga los siguientes elementos y una subarray:

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

Entonces, aplanaremos los anidados creados "numarray"Con la ayuda del"departamento()" método:

consttatoRray = numArray.departamento();
consola.log (FlatArray);

No hemos pasado el "profundidad"Argumento, entonces el"numarray.departamento()"Considerará el valor de profundidad predeterminado, que es"1"Y concatena los elementos de matriz anidados de JavaScript 34, 45, 56 al recién creado "estatriz":

Ejemplo 2: Cómo aplanar una matriz de JavaScript anidada con profundidad de dos niveles

En el siguiente ejemplo, especificaremos "2"Como el"profundidad" nivel. Al hacerlo el "numarray.departamento()"Aplanará las dos sub-matrices internas y agregará sus elementos en el resultante"FlatArray ()":

const nuarray = [12, 23, [34, 45, 56, [67, 78]]];
consttatoRray = numArray.plano (2);
consola.log (FlatArray);

La ejecución del programa dado mostrará el siguiente resultado:

Ejemplo 3: Cómo aplanar una matriz de JavaScript anidada sin conocer el nivel de profundidad

Si no tiene idea del nivel de profundidad de la matriz, pase "infinidad"Como argumento para el"Formación.departamento()" método. En este caso, todos los elementos de las sub-matrices son "recursivamente"Concatenado en otra matriz.

Por ejemplo, para aplanar los siguientes "numarray", Especificaremos"infinidad"En lugar del argumento de nivel de profundidad:

const nuarray = [12, 23, [34, 45, 56, [67, 78, [89, 90]]]];
consttatoRray = numArray.plano (infinito);
consola.log (FlatArray);

Como puede ver, el "numarray.departamento()"El método ha aplanado con éxito el anidado"numarray":

Esa fue toda la información esencial relacionada con el aplanamiento de una matriz en JavaScript. Puede trabajar más de acuerdo con sus preferencias.

Conclusión

El Formación.departamento() El método se utiliza principalmente para aplanar una matriz de JavaScript anidada. Acepta el profundidad nivel como argumento y devuelve una nueva matriz en la que todos los elementos de las sub-matrices se concatenan de acuerdo con la profundidad especificada. Antes de ES6, la combinación de algunos métodos incorporados como concat () y operador de propagación […] solo puede aplanar la matriz de nivel uno; sin embargo, el Formación.departamento() El método ayuda a aplanar matrices profundamente anidadas. Este artículo explicó el procedimiento para aplanar una matriz en JavaScript.