同等の JavaScript HashMap: 効率的な実装の探索
JavaScript では、「hash[X]」という表記を使用してオブジェクトのプロパティに直接アクセスすることはできません。オブジェクトをハッシュします。代わりに、ハッシュ メカニズムを適用せずに、文字列に変換し、通常の辞書にその文字列が存在するかどうかを確認します。さらに、オブジェクトの同等性が考慮されないため、同じ文字列表現でオブジェクトが上書きされてしまいます。
この問題に対処し、効率的なハッシュマップを実装するには、一意のキーを使用してオブジェクトを手動でハッシュし、結果の文字列を利用することをお勧めします。 JavaScript 辞書のキーとして。このアプローチにより、パフォーマンスのオーバーヘッドを発生させることなくインデックス作成を制御できます。
実装例は次のとおりです:
<code class="javascript">var key = function(obj) { // Generate a unique object-dependent key return obj.totallyUniqueEmployeeIdKey; // Just an example }; var dict = {}; dict[key(obj1)] = obj1; dict[key(obj2)] = obj2;</code>
この方法では、潜在的な競合を軽減しながら、JavaScript オブジェクトの組み込みハッシュ テーブルを活用します。デフォルトのプロパティを使用します。キーの選択は、オブジェクトの固有の特性に合わせて調整できます。
アップデート (2014):
このソリューションのシンプルさは、さらに詳しく説明する価値があります。 JavaScript の基礎となるオブジェクトはハッシュ テーブルを実装するため、ハッシュ テーブルをエミュレートする必要がなくなります。したがって、オブジェクト自体内で一意のキーを識別することが賢明です。 JavaScript のオブジェクトをキー/値ストアとして採用することで、そのネイティブ ハッシュ テーブル実装を活用できます。
ECMAScript 6 ソリューション:
ECMAScript 6 では、Map および Set データ構造が導入されています。 、効率的なハッシュ機能を提供します。マップを使用すると、オブジェクトを含む任意の値をキーとして使用できるため、手動でキーを生成する必要がなくなります。さらに、挿入順序が維持され、予測可能な反復が可能になります。
要約すると、JavaScript ハッシュマップと同等のものを求める場合は、次のオプションを検討してください。
以上がJavaScript で HashMap 機能を実現する方法: 手動ハッシュ、文字列変換、またはマップとセットの使用?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。