Buscar..
Sintaxis
- nuevo mapa ([iterable])
- map.set (clave, valor)
- map.get (clave)
- Tamaño de mapa
- map.clear ()
- map.delete (clave)
- map.entries ()
- map.keys ()
- map.values ()
- map.forEach (callback [, thisArg])
Parámetros
Parámetro | Detalles |
---|---|
iterable | Cualquier objeto iterable (por ejemplo, una matriz) que contenga pares [key, value] . |
key | La clave de un elemento. |
value | El valor asignado a la clave. |
callback | Función de devolución de llamada llamada con tres parámetros: valor, clave y el mapa. |
thisArg | Valor que se utilizará como this al ejecutar la callback . |
Observaciones
En los mapas, se considera que NaN
es lo mismo que NaN
, aunque NaN !== NaN
. Por ejemplo:
const map = new Map([[NaN, true]]);
console.log(map.get(NaN)); // true
Creando un Mapa
Un mapa es un mapeo básico de claves a valores. Los mapas son diferentes de los objetos en que sus claves pueden ser cualquier cosa (valores primitivos y objetos), no solo cadenas y símbolos. La iteración sobre Mapas también se realiza siempre en el orden en que se insertaron los elementos en el Mapa, mientras que el orden no está definido cuando se itera sobre las claves de un objeto.
Para crear un mapa, usa el constructor de mapas:
const map = new Map();
Tiene un parámetro opcional, que puede ser cualquier objeto iterable (por ejemplo, una matriz) que contiene matrices de dos elementos: primero es la clave, los segundos es el valor. Por ejemplo:
const map = new Map([[new Date(), {foo: "bar"}], [document.body, "body"]]);
// ^key ^value ^key ^value
Borrar un mapa
Para eliminar todos los elementos de un mapa, use el método .clear()
:
map.clear();
Ejemplo:
const map = new Map([[1, 2], [3, 4]]);
console.log(map.size); // 2
map.clear();
console.log(map.size); // 0
console.log(map.get(1)); // undefined
Eliminar un elemento de un mapa
Para eliminar un elemento de un mapa, use el método .delete()
.
map.delete(key);
Ejemplo:
const map = new Map([[1, 2], [3, 4]]);
console.log(map.get(3)); // 4
map.delete(3);
console.log(map.get(3)); // undefined
Este método devuelve true
si el elemento existió y se eliminó; de lo contrario, false
:
const map = new Map([[1, 2], [3, 4]]);
console.log(map.delete(1)); // true
console.log(map.delete(7)); // false
Comprobando si existe una clave en un mapa
Para verificar si existe una clave en un mapa, use el método .has()
:
map.has(key);
Ejemplo:
const map = new Map([[1, 2], [3, 4]]);
console.log(map.has(1)); // true
console.log(map.has(2)); // false
Iterando mapas
El mapa tiene tres métodos que devuelven iteradores: .keys()
, .values()
y .entries()
. .entries()
es el iterador de mapas predeterminado y contiene pares [key, value]
.
const map = new Map([[1, 2], [3, 4]]);
for (const [key, value] of map) {
console.log(`key: ${key}, value: ${value}`);
// logs:
// key: 1, value: 2
// key: 3, value: 4
}
for (const key of map.keys()) {
console.log(key); // logs 1 and 3
}
for (const value of map.values()) {
console.log(value); // logs 2 and 4
}
El mapa también tiene el método .forEach()
. El primer parámetro es una función de devolución de llamada, que se llamará para cada elemento en el mapa, y el segundo parámetro es el valor que se usará como this
al ejecutar la función de devolución de llamada.
La función de devolución de llamada tiene tres argumentos: valor, clave y el objeto de mapa.
const map = new Map([[1, 2], [3, 4]]);
map.forEach((value, key, theMap) => console.log(`key: ${key}, value: ${value}`));
// logs:
// key: 1, value: 2
// key: 3, value: 4
Obteniendo y configurando elementos.
Use .get(key)
para obtener valor por clave y .set(key, value)
para asignar un valor a una clave.
Si el elemento con la clave especificada no existe en el mapa, .get()
devuelve undefined
.
.set()
método .set()
devuelve el objeto del mapa, por lo que puede encadenar llamadas .set()
.
const map = new Map();
console.log(map.get(1)); // undefined
map.set(1, 2).set(3, 4);
console.log(map.get(1)); // 2
Obtener el número de elementos de un mapa
Para obtener la cantidad de elementos de un mapa, use la propiedad .size
:
const map = new Map([[1, 2], [3, 4]]);
console.log(map.size); // 2