「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > JavaScript で効率的なハッシュマップを実装するにはどうすればよいですか?

JavaScript で効率的なハッシュマップを実装するにはどうすればよいですか?

2024 年 11 月 4 日に公開
ブラウズ:939

How Can I Implement Efficient Hashmaps in JavaScript?

JavaScript での効率的なハッシュマップの実装

JavaScript オブジェクトは辞書として使用できますが、真のハッシュ機能は提供しません。その結果、文字列表現は異なるが値が等しいオブジェクトが相互に上書きされる可能性があります。

カスタム キー関数の使用

効率的なハッシュマップを作成するには、手動でオブジェクトの固有の特性に基づいて主要な機能を設定します。結果の文字列は、通常の JavaScript 辞書のキーとして使用できます。

var key = function(obj){
  // Some unique object-dependent key
  return obj.totallyUniqueEmployeeIdKey; // Just an example
};

var dict = {};

dict[key(obj1)] = obj1;
dict[key(obj2)] = obj2;

このアプローチの利点:

  • 面倒な作業を行わずにインデックス作成を制御
  • オーバーフローなし処理
  • 単純または複雑なキー機能を選択できます

衝突の回避

異なるオブジェクトによって生成されたキー間の衝突を回避するには、オブジェクトの一意のプロパティを作成し、それらをキー関数で使用します。必要に応じて、デフォルトのプロパティとの競合を防ぐために、非ラテン Unicode 文字または区切り文字を使用してください。

ES6 マップとセット

ECMAScript 6 では、マップとセットが導入されました。 -in ハッシュ機能と、オブジェクトを含む任意の値のキーをサポートします。

マップの利点:

  • キーには任意の値を指定でき、オブジェクトをハッシュできます。人工キーを使用せずに直接
  • 順序付けされたキー
  • オブジェクト数を簡単に決定できるサイズ プロパティ
  • 簡単に反復できる反復可能
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3