Aplanar Arrays en JavaScript con Flat y FlatMap

Clase 23 de 28Curso de Manipulación de Arrays en JavaScript

Resumen

El método flat es inmutable que consiste en retornar un array donde los sub-arrays han sido aplanados hasta una profundidad especificada. El aplanamiento consiste en transformar un array de arrays a una sola dimensión.

Este procedimiento recibe un argumento:

  • La profundidad del aplanamiento, por defecto, tiene un valor de 1. Si se desea aplanar todos los sub-arrays en una sola dimensión, utiliza el valor de Infinity.
array.flat(profundidad)

Diferencia entre la estructura for y el método flat

Si se utiliza la estructura for para aplanar un array de arrays, es necesario utilizar otra estructura for para cada sub-nivel del array o recursión.

const matrix = [ [1,2,3], [4,5,6], [7,8,9], ] const flatArray = [] for(let i=0; i<matrix.length; i++){ const array = matrix[i] for(let j=0; j<array.length; j++){ flatArray.push(matrix[i][j]) } } console.log(flatArray) // [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]

Con el método flat solamente es necesario indicar la profundidad de aplanamiento del array.

const array = [1,2,[3,4],5,6] const result = array.flat() result// [1,2,3,4,5,6] const array2 = [1, 2, [3, 4, [5, 6]]]; const result2 = array2.flat() result2// [1, 2, 3, 4, [5, 6]] const array3 = [1, 2, [3, 4, [5, 6]]] const result3 = array3.flat(2) result3// [1, 2, 3, 4, 5, 6] const array4 = [1, 2, [3, 4, [5, 6, [7, 8, [9, 10]]]]] const result4 = array4.flat(Infinity) result4// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Contribución creada por: Andrés Guano.