JavaScript で同等の Hashmap

Sahil Bhosale 2023年10月12日
JavaScript で同等の Hashmap

ハッシュマップは、ハッシュテーブルとも呼ばれ、要素がキーと値のペアの形式で格納される要素のコレクションです。当時、JavaScript プログラミング言語で実装されたハッシュマップに使用できる事前定義されたデータ構造はありませんでした。このデータ構造がすでに実装されている C++ や Java のような他のプログラミング言語とは異なります。そのため、人々はハッシュマップを実装するためのさまざまな代替手段を検索し、ほとんどの場合、キー値の構造も持っているため、オブジェクトを使用するために使用されていました。

JavaScript の ES6 バージョンでは、JavaScript コミュニティは、キーと値のペアである Map オブジェクトと呼ばれるハッシュマップを実装するための新しいデータ構造を導入しています。Map オブジェクトを使用してハッシュマップを実装し、いくつかの事前定義されたメソッドを使用して挿入、削除、更新などのさまざまな操作を実行する方法を見てみましょう。

JavaScript で Map オブジェクトを使用してハッシュマップを実装する

すでに見てきたように、Map オブジェクトはキーと値のペアです。最初は、マップは空になります。その中に要素はありません。ハッシュマップのキーは string 型または symbol 型のいずれかであり、ハッシュマップの値は任意の型にすることができます。

Map を作成するには、そのオブジェクトを作成して、変数(この場合は hashmap)内に格納します。ハッシュマップ内にキーと値のペアを挿入するために、JavaScript は set() と呼ばれるメソッドを提供します。このメソッドは 2つのパラメーターを取ります。最初のパラメーターはキーで、2 番目のパラメーターは値です。作成した hashmap 内に 4つの要素を挿入します。各要素には、整数、配列、文​​字列、関数全体など、異なるタイプの値が含まれます。以下は同じことを示すコードです。

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

上記のコードを実行すると、コンソールでは次のようになります。

created_hashmap

ご覧のとおり、関数全体を値としてハッシュマップに含めるなど、さまざまなデータ型を挿入しています。

ハッシュマップを作成しました。ハッシュマップ内に存在するすべての値を出力してみましょう。これは、forEach ループを使用して実行できます。

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

この出力は、document.write() メソッドを使用してコンソール内ではなく、画面に直接表示されます。

javascript ハッシュマップの要素を出力する

次に、キー3 がハッシュマップ内に存在するかどうか、または has() メソッドを使用していないかどうかを確認しましょう。キーがハッシュマップ内に存在する場合、set() メソッドを使用してキー3 の既存の値を変更または置換します。

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

console.log(hashmap);

出力:

update_value_hashmap

最後に、ハッシュマップから要素を削除するには、delete() メソッドを使用して、削除する適切なキーを渡すことができます。また、ハッシュマップからすべての要素を一度に削除して空にしたい場合は、次のように clear() メソッドを使用できます。

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

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

以下は、上記のコードの出力です。

delete_elements_from_hashmap

これは、JavaScript でハッシュマップを作成するのと同等の正しい方法です。

著者: Sahil Bhosale
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