¿Qué es un mapa en JavaScript?
- El mapa es una estructura de datos en JavaScript que permite el almacenamiento de pares [clave, valor] donde cualquier valor puede usarse como clave o valor.
- Las claves y los valores en la colección de mapas pueden ser de cualquier tipo y si se agrega un valor a la colección de mapas usando una clave que ya existe en la colección, entonces el nuevo valor reemplaza al valor anterior.
- La iteración de elementos en un objeto de mapa se realiza en el orden de inserción y un bucle «for…» devuelve una array de todos los pares [clave, valor] para cada iteración.
Diferencias entre objetos y mapas en JavaScript
Ambas estructuras de datos son similares en muchos aspectos, como almacenar valores usando claves, permitir la recuperación de esos valores usando claves, eliminar claves y verificar si una clave contiene algún valor o no. Sin embargo, existen diferencias bastante significativas entre Objetos y Mapas en JavaScript que hacen que el uso de mapas sea una opción mejor y más preferible en muchos casos.
- Las claves utilizadas en los mapas pueden ser cualquier tipo de valores, como funciones, objetos, etc., mientras que las claves de los objetos se limitan a símbolos y strings.
- El tamaño de un mapa se puede conocer fácilmente utilizando la propiedad de tamaño, pero al tratar con objetos, el tamaño debe determinarse manualmente.
- Se debe preferir un mapa en los casos en que el requisito implique la adición y eliminación frecuentes de pares [clave, valor] porque un mapa es un tipo de datos iterativo y se puede iterar directamente, mientras que iterar un objeto requiere obtener sus claves de una manera específica.
Método Map.delete() en JavaScript
El método Map.delete() en JavaScript se utiliza para eliminar el elemento especificado entre todos los elementos que están presentes en el mapa.
El método Map.delete() toma la clave que debe eliminarse del mapa, por lo que elimina el elemento asociado con esa clave y devuelve verdadero. Si la clave no está presente, devuelve falso.
Aplicaciones:
- Map.delete() se utiliza para eliminar un elemento asociado a la clave entre todos los elementos presentes en el mapa.
Sintaxis:
my_map.delete(key)
Parámetros utilizados:
- clave: El elemento asociado a esta clave se va a eliminar del mapa
Valor de retorno:
- El método Map.delete() devuelve verdadero, si la clave está presente cuyo elemento asociado se eliminará y se pasa como argumento; de lo contrario, devuelve falso.
Ejemplos:
Input : my_map.set(1, 'first'); my_map.set(2, 'second'); my_map.set(3,'third'); my_map.set(4,'fourth'); document.write(my_map.delete(3)); Output : true
Explicación: la clave ‘3’ está presente en el mapa, por lo tanto, el elemento asociado con ella se elimina y devuelve verdadero
Input : my_map.set(1, 'first'); my_map.set(2, 'second'); my_map.set(3,'third'); my_map.set(4,'fourth'); document.write(my_map.delete(5)); Output : false
Explicación: La clave ‘5’ no está presente en el mapa, por lo que devuelve falso.
Código 1:
<script> // creating a map object var my_map = new Map(); // Adding [key, value] pair to the map my_map.set(1, 'first'); my_map.set(2, 'second'); my_map.set(3,'third'); my_map.set(4,'fourth'); // will display true as key '3' // is present and its associated // element is removed as well document.write(my_map.delete(3),"</br>","</br>"); // elements left in the map after deletion document.write("key-value pair of the map", " after deletion-","</br>"); my_map.forEach(function (item, key, mapObj) { document.write(key.toString(),":", " ",item.toString() + "<br />"); }); </script>
Producción:
true key-value pair of the map after deletion- 1: first 2: second 4: fourth
Código 2:
<script> // creating a map object var my_map = new Map(); // Adding [key, value] pair to the map my_map.set(1, 'first'); my_map.set(2, 'second'); my_map.set(3,'third'); my_map.set(4,'fourth'); // will display false as key '5' // is not present and its associated // element is removed as well document.write(my_map.delete(5), "</br>","</br>"); // elements left in the map after deletion document.write("key-value pair of the map", " after deletion-","</br>"); my_map.forEach(function (item, key, mapObj) { document.write(key.toString(),":"," ", item.toString() + "<br />"); }); </script>
Producción:
false key-value pair of the map after deletion- 1: first 2: second 3: third 4: fourth
- Error y excepción:
- Si la clave pasada como argumento a la función no está presente en el mapa, devuelve falso. Básicamente, no lanza ninguna excepción ni tiene ningún error.
Diferencia en el funcionamiento de Map.clear(), Map.erase() y esta función
Map.clear() elimina todos los pares clave-valor del mapa y reduce el tamaño del mapa a cero. Mientras que Map.erase() elimina el valor asignado especificado cuya clave se pasa como argumento o iterador o en el rango para eliminar pares.
Navegador compatible:
- Chrome 38 y superior
- Borde 12 y superior
- Firefox 13 y superior
- Internet Explorer 11 y superior
- Ópera 25 y superior
- safari 8 y superior