1. ホーム
  2. javascript

[解決済み] Javascriptの連想配列のソート順の繰り返し処理

2022-10-20 02:50:48

質問

Javascriptの連想配列(別名ハッシュ、別名ディクショナリ)を持っているとします。

var a = new Array();
a['b'] = 1;
a['z'] = 1;
a['a'] = 1;

どのようにすればソートされた順序でキーを反復することができますか?物事を単純化するのに役立つなら、私は値さえ必要ありません(それらはすべて数字の1だけです)。

どのように解決するのですか?

直接反復処理することはできませんが、すべてのキーを見つけて、それをソートすればよいのです。

var a = new Array();
a['b'] = 1;
a['z'] = 1;
a['a'] = 1;    

function keys(obj)
{
    var keys = [];

    for(var key in obj)
    {
        if(obj.hasOwnProperty(key))
        {
            keys.push(key);
        }
    }

    return keys;
}

keys(a).sort(); // ["a", "b", "z"]

しかし、変数 'a' を配列にする必要はありません。 ただ単にオブジェクトとして使っているだけなので、このように作成する必要があります。

var a = {};
a["key"] = "value";