Hashmap équivalent en JavaScript

Sahil Bhosale 12 octobre 2023
Hashmap équivalent en JavaScript

Hashmap, également connu sous le nom de table de hachage, est une collection d’éléments où les éléments sont stockés sous la forme d’une paire clé-valeur. Il n’y avait pas de structure de données prédéfinie disponible pour le hashmap implémenté dans le langage de programmation JavaScript à l’époque. Contrairement aux autres langages de programmation comme C++ ou Java, où cette structure de données est déjà mise en œuvre. À cause de quoi les gens avaient l’habitude de rechercher diverses alternatives d’implémentation de hashmap, et la plupart du temps, ils étaient habitués à utiliser des objets car ils ont également la structure de clé-valeur.

Dans la version ES6 de JavaScript, la communauté JavaScript introduit une nouvelle structure de données pour l’implémentation d’un hashmap appelé objet Map, qui est une paire clé-valeur. Voyons comment implémenter une hashmap à l’aide de l’objet Map et effectuer diverses opérations telles que l’insertion, la suppression et la mise à jour à l’aide de méthodes prédéfinies.

Implémentation de Hashmap à l’aide de l’objet Map en JavaScript

L’objet Map, comme nous l’avons déjà vu, est un couple clé-valeur. Initialement, la carte sera vide ; il n’y aura aucun élément à l’intérieur. La clé dans une table de hachage sera soit de type chaîne, soit symbole et la valeur de la table de hachage peut être de n’importe quel type.

Pour créer une Map, vous pouvez en créer un objet et le stocker dans une variable, dans ce cas, hashmap. Maintenant, pour insérer des paires clé-valeur dans la table de hachage, JavaScript fournit une méthode appelée set(). Cette méthode prend deux paramètres, le premier est la clé et le second est la valeur. À l’intérieur de la hashmap que nous avons créée, nous allons insérer quatre éléments, chacun d’eux aura une valeur d’un type différent comme un entier, un tableau, une chaîne et une fonction entière. Ci-dessous le code qui démontre la même chose.

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

Après avoir exécuté le code ci-dessus, voici à quoi cela ressemblera dans la console.

creation_hashmap

Comme vous pouvez le voir, nous avons inséré différents types de données, y compris une fonction entière en tant que valeur dans la table de hachage.

Nous avons créé une hashmap ; essayons d’imprimer toutes les valeurs présentes dans notre hashmap. Cela peut être fait à l’aide de la boucle forEach.

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

La sortie de ceci sera directement à l’écran plutôt qu’à l’intérieur de la console en utilisant la méthode document.write().

impression d&rsquo;éléments dans javascript hashmap

Vérifions maintenant si la clé ‘3’ est présente à l’intérieur de la hashmap ou non en utilisant la méthode has(). Si la clé est présente à l’intérieur du hashmap, nous allons changer ou remplacer la valeur existante de la clé ‘3’ en utilisant la méthode set().

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

console.log(hashmap);

Production:

update_value_hashmap

Enfin, pour supprimer un élément de la hashmap, vous pouvez utiliser la méthode delete() et passer la clé appropriée que vous souhaitez supprimer. Et si vous souhaitez supprimer tous les éléments de la hashmap à la fois et la rendre vide, vous pouvez utiliser la méthode clear() comme suit.

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

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

Ce qui suit est la sortie du code ci-dessus.

delete_elements_from_hashmap

C’est un équivalent et la bonne façon de créer une hashmap en JavaScript.

Sahil Bhosale avatar Sahil Bhosale avatar

Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.

LinkedIn