javascript

Array Map en JavaScript – Tutorial y ejemplos

Hoy voy a explicar cómo funciona Array Map en JavaScript. La función map es una función que tienen todos los arreglos y permite mapear o convertir un arreglo en otro; es decir, Array Map en JavaScript transforma arreglos.

Voy a explicar cómo funciona map con algunos ejemplos.

Array Map en JavaScript: sintaxis

La sintaxis es:

arregloMapeado = arreglo.map(función, argumentoThis);

En donde:

  1. argumentoThis es a lo que se referirá this dentro de la función. Casi no se usa, pero es bueno tenerlo en cuenta
  2. función es la función que va a transformar al arreglo. La misma recibe tres argumentos y me recuerda mucho a forEach:
    1. El elemento actual
    2. Índice del elemento actual
    3. Arreglo que estamos mapeando

Por cierto, Array Map en JavaScript regresa un nuevo arreglo.

Ejemplo sencillo

Vamos a comenzar con un ejemplo sencillo. Como lo dije, esta función transforma un arreglo. Por lo tanto veamos el siguiente arreglo:

const personas = [
 {
  nombre: "Luis",
  edad: 22
 },
 {
  nombre: "Juan",
  edad: 50
 },
 {
  nombre: "David",
  edad: 100
 }
];

Es un arreglo de objetos que tienen nombre y edad. Vamos a transformar a ese arreglo de manera que tengamos un nuevo arreglo pero únicamente con los nombres, ya no nos importan los objetos.

Definimos la función que lo transforma:

const regresarNombre = function(persona) {
 return persona.nombre;
}

La función recibe una persona y devuelve la propiedad nombre. Ahora solo resta invocar a map con esa función, y asignar el resultado a una nueva variable:

const nombresDePersonas = personas.map(regresarNombre);
console.log(nombresDePersonas);
/*
Salida:
[ 'Luis', 'Juan', 'David' ]
*/

La magia sucede en la línea 1, invocamos a map con la función regresarNombre. Por cada elemento que haya en personas, se invocará a regresarNombre y el resultado será asignado a un nuevo elemento dentro de nombresDePersonas.

Otro ejemplo de array map en JavaScript

Si no quedó tan claro, veamos otro ejemplo ahora con simples números. Vamos a obtener un nuevo arreglo cuyo contenido sea la raíz cuadrada de cada número en otro arreglo.

Por ejemplo, si tenemos 25, 100 y 81 ahora deberíamos tener 5, 10 y 9. Definimos el arreglo y la función:

const numeros = [25, 100, 81];

const regresarCuadrada = function(numero) {
 return Math.sqrt(numero);
}

Simplemente estamos regresando lo que devuelve Math.sqrt. Ahora solo mapeamos:

const raicesCuadradas = numeros.map(regresarCuadrada);
console.log(raicesCuadradas);
/*
Salida:
[ 5, 10, 9 ]
*/

Y la salida se puede ver en el código.

Usando funciones que ya existen

En el ejemplo de arriba, invocamos a la función regresarCuadrada, pero ya existe una función que regresa la raíz cuadrada y recibe un número, ¿sabes cuál es? exacto, Math.sqrt así que el ejemplo anterior bien puede ser escrito así:

/**
 * Ejemplos y explicación de Array Map
 * en JavaScript
 * 
 * https://parzibyte.me/blog
 * 
 */const numeros = [25, 100, 81];

const raicesCuadradas = numeros.map(Math.sqrt);
console.log(raicesCuadradas);
/*
Salida:
[ 5, 10, 9 ]
*/

Como map solo necesita la función a la que llamar, podemos pasarle la que ya existe.

Nota

Aunque parece que así puedes reutilizar funciones, recomiendo crear las tuyas. Es decir, mejor definir una función que regrese la raíz cuadrada (aunque internamente invoque a Math.sqrt) y no usar la que ya existe, esto es porque otras funciones ya existentes pueden tener comportamientos inesperados debido a los argumentos que map pasa.

Funciones anónimas para array map en JavaScript

Hasta el momento hemos usado funciones con nombre o funciones ya definidas. Sin embargo, también podemos definir funciones anónimas.

Veamos el siguiente ejemplo en donde convertimos un arreglo de números como cadena, a números como enteros:

/**
 * Ejemplos y explicación de Array Map
 * en JavaScript
 * 
 * https://parzibyte.me/blog
 * 
 */const numerosString = ["20", "515", "800"];

const numerosInt = numerosString.map(function(numeroComoString){
 return parseInt(numeroComoString);
});
console.log(numerosInt);
/*
Salida:
[ 20, 515, 800 ]
*/

Lo importante de aquí es la línea 10, en ella invocamos a map pero definimos la función ahí mismo, sin invocarla antes o después, ni definirla.

Esto es una función anónima y viene bien para cuando vamos a usar map con una función que no vamos a reutilizar después.

Funciones flecha

Las arrow functions o funciones flecha no son otra cosa más que las funciones pero de manera simplificada. A la función array map en JavaScript no le importa cómo se haya definido la función, aunque de igual manera veamos un ejemplo de función flecha con map:

/**
 * Ejemplos y explicación de Array Map
 * en JavaScript
 * 
 * https://parzibyte.me/blog
 * 
 */const numerosString = ["20", "515", "800"];

const numerosInt = numerosString.map((numeroComoString) => {
 return parseInt(numeroComoString);
});
console.log(numerosInt);
/*
Salida:
[ 20, 515, 800 ]
*/

Como ves, no es mucha ciencia, solo cambia un poco la sintaxis. De hecho se puede simplificar todavía más:

/**
 * Ejemplos y explicación de Array Map
 * en JavaScript
 * 
 * https://parzibyte.me/blog
 * 
 */const numerosString = ["20", "515", "800"];

const numerosInt = numerosString.map(numeroComoString => parseInt(numeroComoString));
console.log(numerosInt);
/*
Salida:
[ 20, 515, 800 ]
*/

Finalmente te invito a ver cómo funciona forEach en JS, o a ver más sobre JavaScript en mi blog.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

1 semana hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

2 semanas hace

Esta web usa cookies.