Equivalente de Hashmap em JavaScript

Hashmap, também conhecido como Hash Table, é uma coleção de elementos onde os elementos são armazenados na forma de um par de valores-chave. Não havia estrutura de dados predefinida disponível para hashmap implementado na linguagem de programação JavaScript naquela época. Diferente de outras linguagens de programação como C++ ou Java, onde essa estrutura de dados já está sendo implementada. Por isso as pessoas costumavam pesquisar várias alternativas de implementação de hashmap e, na maioria das vezes, costumavam usar objetos porque também tinham a estrutura de valor-chave.

Na versão ES6 do JavaScript, a comunidade JavaScript apresenta uma nova estrutura de dados para implementar um hashmap chamado objeto Map, que é um par de valor-chave. Vamos ver como implementar um hashmap usando o objeto Map e realizar várias operações como inserir, excluir e atualizar usando alguns métodos predefinidos.

Implementando Hashmap usando o objeto Map em JavaScript

O objeto Map, como já vimos, é um par de valores-chave. Inicialmente, o Mapa estará vazio; não haverá elementos dentro dele. A chave em um hashmap será do tipo string ou símbolo e o valor do hashmap pode ser de qualquer tipo.

Para criar um Map, você pode criar um objeto dele e armazená-lo dentro de uma variável, neste caso, hashmap. Agora, para inserir pares de valores-chave dentro do hashmap, o JavaScript fornece um método chamado set(). Este método usa dois parâmetros, o primeiro é a chave e o segundo é o valor. Dentro do hashmap que criamos, inseriremos quatro elementos, cada um deles terá um valor de um tipo diferente como inteiro, array, string e uma função inteira. Abaixo está o código que demonstra o mesmo.

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);

Depois de executar o código acima, é assim que ele se parecerá no console.

criando_hashmap

Como você pode ver, inserimos vários tipos de dados, incluindo uma função inteira como um valor para o hashmap.

Criamos um hashmap; vamos tentar imprimir todos os valores presentes em nosso hashmap. Isso pode ser feito com a ajuda do loop forEach.

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

A saída disso será diretamente na tela ao invés de dentro do console usando o método document.write().

imprimir elementos em JavaScript hashmap

Agora vamos verificar se a chave ‘3’ está presente dentro do hashmap ou não usando o método has(). Se a chave estiver presente dentro do hashmap, iremos alterar ou substituir o valor existente da chave ‘3’ usando o método set().

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

console.log(hashmap);

Resultado:

update_value_hashmap

Finalmente, para deletar um elemento do hashmap, você pode usar o método delete() e passar a chave apropriada que você deseja deletar. E se você quiser remover todos os elementos do hashmap de uma vez e torná-lo vazio, você pode método clear() como segue.

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

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

A seguir está a saída para o código acima.

delete_elements_from_hashmap

Esta é uma forma equivalente e correta de criar um hashmap em JavaScript.

Artigo relacionado - JavaScript map