

JavaScriptにて、

[code]

    const array = 
    {
        "A": 6,
        "B": 1,
        "C": 3
    }
    
[/code]

といったオブジェクトの配列をキーごと数字順（大きい順番）に並べ替えたいです。  
どうすれば良いでしょうか？

# 理想

[code]

    const array = 
    {
        "A": 6,
        "C": 3,
        "B": 1
    }
    
[/code]


CC BY-SA 4.0
2019-01-07T23:37:12.220
51805
2019-01-14T15:07:10.270
2019-01-08T21:18:12.677
3475
29216
question
javascript json array
Javascriptオブジェクトのプロパティをソート


ちょうど類似の記事が以下にあります。constではなくvarで質問されていますが同等でしょう。  
[Sorting JavaScript Object by property
value](https://stackoverflow.com/q/1069666/9014308)

で、@mok2pokさんのコメントと同様の内容がコメントに付いていて、高評価を受けています。  
google翻訳にかけた結果が以下になります。  
**質問そのままの内容としては、答えは「出来ません」のようですね。**

> 答えを読む前に：答えは「いいえ」です。ECMAScriptでは、オブジェクトプロパティの順序は標準的ではありません。
> JavaScriptオブジェクトの要素の順序については絶対に想定しないでください。 オブジェクトは、順不同のプロパティの集まりです。
> 以下の答えは、配列の助けを借りて、ソートされたプロパティを「使用」する方法を示していますが、オブジェクト自体のプロパティの順序を実際に変更することはありません。
> それで、いいえ、それは不可能です。
> 事前ソートされたプロパティを使用してオブジェクトを構築したとしても、将来それらが同じ順序で表示されることは保証されていません。

上記の解決とマークされた内容では、定義されたオブジェクトをいったん別の配列変数にpushして、それをソートしています。

類似の日本語の内容が以下の記事の最後にあります。  
[【JavaScript】連想配列のキーを値でソートする](https://mell0w-5phere.net/jaded5phere/2018/03/16/hashmap-
sort/)

冒頭紹介した本家S.O.の記事にいろんな形の回答があるので、好みのもので代替出来るでしょう。


CC BY-SA 4.0
2019-01-08T07:50:58.553
51821
2019-01-08T07:50:58.553
26370
51805
answer


オブジェクトのプロパティに順序性はありませんが、`new Map` のキーは順序性が保証されています。  
ただし、`Map` はソートする機構が標準で用意されていない為、自前でソートしてやる必要があります。

  * [map-prototype-sort.js: Array.prototype.sort 互換のメソッドを定義 · GitHub](https://gist.github.com/think49/daaf5ee0a4f12092862c81c54747bae5)

Re: yoshi さん


CC BY-SA 4.0
2019-01-14T15:07:10.270
51970
2019-01-14T15:07:10.270
20262
51805
answer