Node 4.0 を使用しており、今のところその機能がとても気に入っているので、コードを ES6 に更新しようとしています。ただし、新しい ES6 Map
データ構造では、Array
をキーとして使用すると {}
とは異なる動作をするため、問題があります。カウンターマップとして使ってます。
このコードを実行するのですが、配列を Map
のキーとして使用する方法を知りたいと思っています。
次のように出力されます。最初の行は unknown
: ではなく
1
元の JS マップはキーを文字列化しますが、新しい ES6 Map
で同じタイプの文字列化ハックを実行したくありません。
ES6 Map
で配列をキーとして確実に使用するにはどうすればよいですか?
P粉5292450502023-10-22 13:33:57
キーとして使用される Array
の非プリミティブ インスタンスへの参照を保存する必要があります。次の 2 つの例の違いに注意してください:
P粉9785510812023-10-22 11:23:32
ES2015 マップ キーの比較を理解することは、===
演算子を使用することと (ほぼ) 似ています。 2 つの配列インスタンスは、同じ値が含まれている場合でも、===
形式で相互に比較されません。
Map クラスは基本クラスとして使用することを目的としているため、オーバーライドされた
.get() 関数を使用してサブクラスを実装できる場合があります。
(最初の文の「ほぼ」は、Map キーの等価性比較が
を通じて行われることを反映しています。これは日常のコーディングではほとんど発生しません。本質的に、JavaScript における等価性 3 番目
バリアントをテスト済み。)