プロパティ名でJavaScriptオブジェクトをソートする 質問する

プロパティ名でJavaScriptオブジェクトをソートする 質問する

私はしばらく探していましたが、次のように Javascript オブジェクトを並べ替える方法が欲しいと思っています。

{
    method: 'artist.getInfo',
    artist: 'Green Day',
    format: 'json',
    api_key: 'fa3af76b9396d0091c9c41ebe3c63716'
}

名前のアルファベット順に並べ替えると次のようになります。

{
    api_key: 'fa3af76b9396d0091c9c41ebe3c63716',
    artist: 'Green Day',
    format: 'json',
    method: 'artist.getInfo'
}

これを実行するコードが見つかりません。誰か助けてくれませんか?

ベストアンサー1

コメントからの更新:

この回答は古くなっています。ES6では、オブジェクトのキーは順序付けされます。この質問のために最新の回答

定義上、オブジェクト内のキーの順序が定義されていませんなので、将来を見据えた方法でこれを行うことはおそらくできないでしょう。代わりに、オブジェクトが実際にユーザーに表示されるときにこれらのキーを並べ替えることを検討する必要があります。内部的にどのような並べ替え順序を使用するかは、実際には重要ではありません。

慣例により、ほとんどのブラウザは、オブジェクト内のキーの順序を追加された順序で保持します。したがって、次のようにすることもできますが、常に機能するとは期待しないでください。

function sortObject(o) {
    var sorted = {},
    key, a = [];

    for (key in o) {
        if (o.hasOwnProperty(key)) {
            a.push(key);
        }
    }

    a.sort();

    for (key = 0; key < a.length; key++) {
        sorted[a[key]] = o[a[key]];
    }
    return sorted;
}

おすすめ記事