キーが月、キー値が 1
... 31
であるマップがあります。私の理解が正しければ、JavaScript はマップのキーを文字列に変換します。
標準の new Map([...myMap.entries()].sort()) を使用します。
並べ替え後、マップは次のようにキーによって並べ替えられます。
リーリー
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。
任意の型を
Map()
オブジェクトのkey
で使用できますが、デフォルトのsort()
実装を使用する場合は強制されます。弦。この問題を解決するには、数値として明示的に比較する独自の並べ替えロジックを実装する必要があります。以下の例では整数を使用していますが、10 進比較が必要な場合は
parseFloat()
を使用するように簡単に更新できます。注: コード スニペット コンソールは
Map()
オブジェクトと互換性がないようです。開発ツール コンソールの出力をチェックして、順序が正しいかどうかを確認してください。