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

JavaScript マップを 10 進数キーで並べ替える

キーが月、キー値が 1... 31 であるマップがあります。私の理解が正しければ、JavaScript はマップのキーを文字列に変換します。

標準の new Map([...myMap.entries()].sort()) を使用します。並べ替え後、マップは次のようにキーによって並べ替えられます。 リーリー

10 進数のキーを文字列に変換し、単一の数値を

0 で埋めて 1,2,3,4,5, ... 並べ替えを実現する方法を見つけました。による: ### リーリー このアプローチはあまりにも人為的すぎるのではないかと思います。キーの 10 進数値によるノーマル マップの並べ替えを実現するために、事前に構築された JavaScript メソッドが必要です。

JavaScript マップを 10 進キーでより良い方法で並べ替える方法について何か提案はありますか?

Tried

new Map([...myMap.entries()].sort())

- マップは次のように並べ替えられました: 1、11、12、...、19、2、20 、21、22、...29、3、30、31。

P粉755863750P粉755863750396日前601

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

  • P粉501683874

    P粉5016838742023-09-20 12:24:53

    任意の型を Map() オブジェクトの key で使用できますが、デフォルトの sort() 実装を使用する場合は強制されます。弦。

    この問題を解決するには、数値として明示的に比較する独自の並べ替えロジックを実装する必要があります。以下の例では整数を使用していますが、10 進比較が必要な場合は parseFloat() を使用するように簡単に更新できます。

    リーリー

    注: コード スニペット コンソールは Map() オブジェクトと互換性がないようです。開発ツール コンソールの出力をチェックして、順序が正しいかどうかを確認してください。

    返事
    0
  • キャンセル返事