ホームページ  >  に質問  >  本文

ES6 マップで配列オブジェクトをキーとして使用する

Node 4.0 を使用しており、今のところその機能がとても気に入っているので、コードを ES6 に更新しようとしています。ただし、新しい ES6 Map データ構造では、Array をキーとして使用すると {} とは異なる動作をするため、問題があります。カウンターマップとして使ってます。

このコードを実行するのですが、配列を Map のキーとして使用する方法を知りたいと思っています。

リーリー

次のように出力されます。最初の行は unknown: ではなく 1

である必要があります。 リーリー

元の JS マップはキーを文字列化しますが、新しい ES6 Map で同じタイプの文字列化ハックを実行したくありません。

ES6 Map で配列をキーとして確実に使用するにはどうすればよいですか?

P粉344355715P粉344355715364日前646

全員に返信(2)返信します

  • P粉529245050

    P粉5292450502023-10-22 13:33:57

    キーとして使用される Array の非プリミティブ インスタンスへの参照を保存する必要があります。次の 2 つの例の違いに注意してください:

    リーリー

    返事
    0
  • P粉978551081

    P粉9785510812023-10-22 11:23:32

    ES2015 マップ キーの比較を理解することは、=== 演算子を使用することと (ほぼ) 似ています。 2 つの配列インスタンスは、同じ値が含まれている場合でも、=== 形式で相互に比較されません。

    ###これを試して:### リーリー

    Map クラスは基本クラスとして使用することを目的としているため、オーバーライドされた

    .get()

    関数を使用してサブクラスを実装できる場合があります。 (最初の文の「ほぼ」は、Map キーの等価性比較が

    Object.is()

    を通じて行われることを反映しています。これは日常のコーディングではほとんど発生しません。本質的に、JavaScript における等価性 3 番目 バリアントをテスト済み。)

    返事
    0
  • キャンセル返事