Hashmap equivalente en JavaScript

Hashmap, también conocido como Hash Table, es una colección de elementos donde los elementos se almacenan en forma de un par clave-valor. No había una estructura de datos predefinida disponible para hashmap implementado en el lenguaje de programación JavaScript en su día. No como otros lenguajes de programación como C++ o Java, donde esta estructura de datos ya se está implementando. Debido a que la gente solía buscar varias alternativas para implementar hashmap, y la mayoría de las veces, estaban acostumbrados a usar objetos porque también tienen la estructura de clave-valor.

En la versión ES6 de JavaScript, la comunidad de JavaScript introduce una nueva estructura de datos para implementar un hashmap llamado objeto Map, que es un par clave-valor. Veamos cómo implementar un hashmap usando el objeto Map y realizar varias operaciones como insertar, eliminar y actualizar usando algunos métodos predefinidos.

Implementación de Hashmap usando el objeto Map en JavaScript

El objeto Map, como ya hemos visto, es un par clave-valor. Inicialmente, el mapa estará vacío; no habrá elementos en su interior. La clave en un hashmap será de tipo cadena o símbolo y el valor del hashmap puede ser de cualquier tipo.

Para crear un Map, puede crear un objeto del mismo y almacenarlo dentro de una variable, en este caso, hashmap. Ahora, para insertar pares clave-valor dentro del hashmap, JavaScript proporciona un método llamado set(). Este método toma dos parámetros, el primero es la clave y el segundo es el valor. Dentro del hashmap que hemos creado, insertaremos cuatro elementos, cada uno de ellos tendrá un valor de un tipo diferente como integer, array, string y una función completa. A continuación se muestra el código que demuestra lo mismo.

var hashmap = new Map();

hashmap.set('1', 700);
hashmap.set('2', [1,2,3]);
hashmap.set('3', "This is a string");
hashmap.set('4', ()=>{console.log("Hello World")});

console.log(hashmap);

Después de ejecutar el código anterior, así es como se verá en la consola.

create_hashmap

Como puede ver, hemos insertado varios tipos de datos, incluida una función completa como valor del hashmap.

Hemos creado un hashmap; intentemos imprimir todos los valores presentes dentro de nuestro hashmap. Se puede hacer con la ayuda del bucle forEach.

hashmap.forEach(element => {
    document.write('<br>'+element);
});

La salida de esto será directamente en la pantalla en lugar de dentro de la consola usando el método document.write().

Imprimir elementos en hashmap javascript

Ahora verifiquemos si la clave ‘3’ está presente dentro del hashmap o no usando el método has(). Si la clave está presente dentro del hashmap, cambiaremos o reemplazaremos el valor existente de la clave ‘3’ usando el método set().

if(hashmap.has('3')){
    hashmap.set('3', "We changed the value...")
}

console.log(hashmap);

Producción:

update_value_hashmap

Finalmente, para eliminar un elemento del hashmap, puede usar el método delete() y pasar la clave apropiada que desea eliminar. Y si desea eliminar todos los elementos del hashmap a la vez y dejarlo vacío, puede utilizar el método clear() de la siguiente manera.

// deletes 4th element
hashmap.delete("4");
console.log(hashmap);

// clears entire hashmap
hashmap.clear();
console.log(hashmap);

El siguiente es el resultado del código anterior.

delete_elements_from_hashmap

Esta es una forma equivalente y correcta de crear un hashmap en JavaScript.

Artículo relacionado - JavaScript map