Skip to content

Colecciones - Maps

¿Qué es un map?

Un map es una colección de clave-valor que pueden ser de cualquier tipo (objetos, funciones, números, etc). El map permite valores duplicados, pero las claves deben ser únicas. Un map garantiza el orden de insercción de los elementos y proporciona métodos útiles como:

Métodos de un map

  • new Map(): Crea un mapa nuevo
  • set(key, value): Agrega una clave y valor al mapa
  • get(key): Obtiene el valor asociado a esa clave
  • has(key): Verifica si la clave existe
  • size: Retorna el número de elementos del mapa
  • delete(key): Elimina un elemento por clave
  • clear(): Elimina todos los elementos del map

¿En qué casos debería usar un map en vez de un objeto?

  • Cuando necesites Claves de cualquier tipo. Los objetos solo permiten cadenas o símbolos como claves, mientras que los maps permiten números, objetos, funciones
  • Orden garantizado: Los maps mantienen el orden de insercción de las claves, por lo que lo hace ideal si necesitas recorrer los elementos en el mismo orden de insercción
  • Mejor rendimiento: Un map es más eficiente en términos de tiempo para operaciones como agregar, buscar o eliminar
  • Iteración fácil: Un map es más fácil de recorrer gracias a métodos como forEach, keys(), values() y entries(), mientras que un objeto necesita técnicas adicionales.

Ejemplo de uso de map

const myMap = new Map();
// Agregar elementos al map
myMap.set("name", "John");
myMap.set("age", 30);
myMap.set("profession", "Developer");
// Acceder a valores del mapa
console.log(myMap.get("name")); // Output: John
console.log(myMap.get("age")); // Output: 30
// Comprobar si existe alguna clave
if (myMap.has("profession")) {
console.log("Profession exists in the map!");
}
// Obtener tamaño del mapa
console.log(myMap.size); // Output: 3
// Recorrer el mapa con un bucle
myMap.forEach((value, key) => {
console.log(`${key}: ${value}`);
});
// Eliminar un elemento
myMap.delete("age");
// Limpiar todo el mapa
myMap.clear();

Diferencias principales entre Set y Map:

CaracterísticaSetMap
Formato de datosColección de valores únicosColección de pares clave-valor
ClavesNo tiene clavesClaves son únicas
ValoresSolo almacena valoresCada clave tiene un valor asociado
IteraciónItera sobre los valoresItera sobre claves, valores o ambos
AccesoSolo verifica si un valor existeAccede a valores mediante claves

Ejemplo de Set (solo valores):

const mySet = new Set();
mySet.add(1);
mySet.add(2);
mySet.add(2); // Este duplicado será ignorado
mySet.add(3);
console.log(mySet); // Output: Set { 1, 2, 3 }

Ejemplo de Map (pares clave-valor):

const myMap = new Map();
myMap.set("a", 1);
myMap.set("b", 2);
myMap.set("c", 3);
myMap.set("a", 4); // Sobrescribe el valor de la clave 'a'
console.log(myMap); // Output: Map { 'a' => 4, 'b' => 2, 'c' => 3 }

En resumen:

  • Set: Una lista de valores únicos, como una bolsa de elementos donde no se repiten.
  • Map: Una tabla de pares clave-valor, como un diccionario.