Introducción
En este laboratorio, exploraremos el concepto de aplanar una matriz hasta una profundidad especificada utilizando JavaScript. Aprenderemos cómo utilizar los métodos de recursión, reduce y concat para fusionar elementos o matrices. Al final de este laboratorio, serás capaz de aplanar eficientemente matrices y manipular estructuras de datos anidadas en JavaScript.
Cómo aplanar una matriz con JavaScript
Para aplanar una matriz hasta una profundidad especificada en JavaScript, sigue estos pasos:
- Abre la Terminal/SSH y escribe
nodepara comenzar a practicar la codificación. - Utiliza la función
flattencon dos argumentos:arr(la matriz que se va a aplanar) ydepth(el número máximo de niveles anidados que se van a aplanar). - Dentro de la función
flatten, utiliza la recursión para decrementardepthen1para cada nivel de profundidad. - Utiliza
Array.prototype.reduce()yArray.prototype.concat()para fusionar elementos o matrices. - Agrega un caso base para cuando
depthes igual a1para detener la recursión. - Omite el segundo argumento,
depth, para aplanar solo hasta una profundidad de1(aplanamiento simple).
Aquí está el código de la función flatten:
const flatten = (arr, depth = 1) =>
arr.reduce(
(a, v) =>
a.concat(depth > 1 && Array.isArray(v) ? flatten(v, depth - 1) : v),
[]
);
Puedes probar la función flatten con los siguientes ejemplos:
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]
Resumen
¡Felicidades! Has completado el laboratorio de Aplanamiento de Matriz. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.