Usando las funciones flat() y flatmap() de Javascript

Las funciones flat y flatMap de Javascript son muy 煤tiles cuando trabajas con arrays multidimensionales, es decir, arrays que contienen arrays, y quieres simplificarlos. Estas funciones te permiten aplanar un array que contiene otros arrays dentro.

Anteriormente han existido muchas librer铆as de utilidades como lodash, que a帽aden funciones gen茅ricas como pueden ser flat y flatMap. Con la evoluci贸n del lenguaje Javascript, 茅ste ha ido incorporando nueva funcionalidad muy 煤til que nos permite no depender de este tipo de librer铆as, que en mi caso intento evitarlas siempre que puedo.

Voy a ense帽arte c贸mo usar las funciones flat y flatmap, y para qu茅 sirven con un par de ejemplos muy simples.

Funci贸n flat

El primer ejemplo consiste en transformar un array que contiene otros arrays dentro, en un array con todos los elementos al mismo nivel:

const array = [1, 2, [3,4]];
array.flat();
// [1, 2, 3, 4]

Documentaci贸n de la funci贸n flat.

Funci贸n flatMap

El segundo ejemplo hace uso de la funci贸n flatMap. Esta te ser谩 煤til cuando quieres generar un array nuevo (generalmente usando la funci贸n map), para cada iteraci贸n del bucle devuelves un array nuevo, y tu quieres como resultado un array plano.

const array = [1, 2, 3];
array.flatMap(i => [i + 'a', i + 'b']);
// ['1a', '1b', '2a', '2b', '3a', '3b']

Documentaci贸n de la funci贸n flatMap.

Compatibilidad

Las funciones anteriormente explicadas est谩 disponible en los navegadores de forma nativa:

  • Chrome: 69+
  • Edge: 79+
  • Firefox: 12+
  • Opera: 56+
  • Safari: 12+

Consulta los enlaces de documentaci贸n citados anteriormente para ver la compatibilidad con detalle.

Recuerda que la compatibilidad de las funciones es nativa, pero siempre puedes hacer uso de polyfills o transpilar con compatibilidad a versiones anteriores de javascript.