1. ホーム
  2. javascript

[解決済み] JavaScriptのハッシュマップはどのように実装されていますか?

2022-11-11 09:18:40

質問

私は現在OpenLayersを使用しており、ベクターレイヤーに描画するための巨大なデータセットを持っています(100000以上のベクター)。

私は今、パフォーマンスを分析するために、これらのすべてのベクトルを JavaScript のハッシュマップに入れようとしています。 それは本当のハッシュ関数なのか、それとも単純なデータ構造と検索アルゴリズムを使用した単なるラップ関数なのでしょうか?

どのように解決するのですか?

各Javascript オブジェクト は単純なハッシュマップであり、文字列または シンボル をキーとする単純なハッシュマップで、次のようにコードを書くことができます。

var map = {};
// add a item
map[key1] = value1;
// or remove it
delete map[key1];
// or determine whether a key exists
key1 in map;

javascriptのオブジェクトは、実装上は本当のハッシュマップなので、検索時の複雑さはO(1)になりますが、専用の hashcode() 関数はなく、JavaScriptエンジン(V8、SpiderMonkey、JScript.dllなど)が内部で実装しています。

2020年のアップデート。

javascriptは今日、他のデータ型もサポートしています。 Map そして WeakMap . これらは、従来のオブジェクトよりもハッシュマップに近い振る舞いをします。