Una guía práctica para aplanar matrices de JavaScript
ES2019 introdujo dos nuevos métodos en el prototipo Array: flat
y flatMap
. Ambos son muy útiles para lo que queremos hacer: aplanar un array .
Veamos cómo funcionan.
Pero primero, una advertencia: solo Firefox 62+, Chrome 69+, Edge 76+ y Safari 12+ ya admiten esos 2 métodos, ya que son bastante recientes. Verifique la compatibilidad actual del navegador y recuerde que puede usar Babel para adaptar su código a una versión anterior de ES, si necesita compatibilidad con navegadores más antiguos.
Si no desea lidiar con Babel y aún no tiene un paso de compilación, podría tener más sentido utilizar las flatten()
funciones flattenDeep()
y flattenDepth()
proporcionadas por Lodash.
Lo bueno de Lodash es que no es necesario importar toda la biblioteca. Puedes usar esas funciones individualmente mediante estos paquetes:
- lodash.aplanar
- lodash.aplanamiento profundo
- lodash.aplanar profundidad
A continuación se explica cómo aplanar una matriz usando lodash.flatten
:
const flatten = require('lodash.flatten')const animals = ['Dog', ['Sheep', 'Wolf']]flatten(animals)//['Dog', 'Sheep', 'Wolf']
Hablemos ahora de los métodos nativos flat()
y flatMap()
de JavaScript.
flat()
es un nuevo método de instancia de matriz que puede crear una matriz unidimensional a partir de una matriz multidimensional.
Ejemplo:
['Dog', ['Sheep', 'Wolf']].flat()//[ 'Dog', 'Sheep', 'Wolf' ]
De forma predeterminada, solo se “aplana” hasta un nivel.Te recomendamos Juguetes educativos
Puede agregar un parámetro para flat()
establecer la cantidad de niveles en los que desea aplanar la matriz.
Configúrelo para Infinity
tener niveles ilimitados:
['Dog', ['Sheep', ['Wolf']]].flat()//[ 'Dog', 'Sheep', [ 'Wolf' ] ]['Dog', ['Sheep', ['Wolf']]].flat(2)//[ 'Dog', 'Sheep', 'Wolf' ]['Dog', ['Sheep', ['Wolf']]].flat(Infinity)//[ 'Dog', 'Sheep', 'Wolf' ]
Si está familiarizado con el map()
método JavaScript de una matriz, sabrá que al usarlo puede ejecutar una función en cada elemento de una matriz.
Si no es así, consulta mi tutorial de map() de JavaScript .
flatMap()
es un nuevo método prototipo de Array que se combina flat()
con map()
. Es útil cuando se llama a una función que devuelve una matriz en la map()
devolución de llamada, pero se desea que la matriz resultante sea plana:
['My dog', 'is awesome'].map(words = words.split(' '))//[ [ 'My', 'dog' ], [ 'is', 'awesome' ] ]['My dog', 'is awesome'].flatMap(words = words.split(' '))//[ 'My', 'dog', 'is', 'awesome' ]
Tips para principiantes de JavaScript
Tal vez te puede interesar:
- Cómo generar un número aleatorio entre dos números en JavaScript
- Cómo esperar el evento DOM listo en JavaScript simple
- Cómo determinar si una fecha es hoy en JavaScript
- Cómo contar el número de propiedades en un objeto JavaScript
Cómo aplanar una matriz en JavaScript
ES2019 introdujo dos nuevos métodos en el prototipo Array: flaty flatMap. Ambos son muy útiles para lo que queremos hacer: aplanar un array . Una guía prác
programar
es
2025-01-02

Si crees que alguno de los contenidos (texto, imagenes o multimedia) en esta página infringe tus derechos relativos a propiedad intelectual, marcas registradas o cualquier otro de tus derechos, por favor ponte en contacto con nosotros en el mail [email protected] y retiraremos este contenido inmediatamente