[JavaScript] 連想配列のソート(並び替え)

  • 16
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

yotsuba_s.jpg 1つのキーでソートする関数

JavaScript
//--------------------------------------------
// Sort Object's Array by key
//   ary   : Array [{},{},{}...]
//   key   : string
//   order : string "asc"(default) or "desc"
//--------------------------------------------
function ObjArraySort(ary, key, order) {
    var reverse = 1;
    if(order && order.toLowerCase() == "desc") 
        reverse = -1;
    ary.sort(function(a, b) {
        if(a[key] < b[key])
            return -1 * reverse;
        else if(a[key] == b[key])
            return 0;
        else
            return 1 * reverse;
    });
}

⇒ デモはこちら

yotsuba_s.jpg 2つのキーでソートする関数

JavaScript
//--------------------------------------------
// Sort Object's Array by key1, key2
//   ary    : Array [{},{},{}...]
//   key1   : string
//   order1 : string "asc"(default) or "desc"
//   key2   : string
//   order2 : string "asc"(default) or "desc"
//--------------------------------------------
function ObjArraySort2(ary, key1, order1, key2, order2) {
    var reverse1 = 1;
    var reverse2 = 1;
    if(order1 && order1.toLowerCase() == "desc") 
        reverse1 = -1;
    if(order2 && order2.toLowerCase() == "desc") 
        reverse2 = -1;

    ary.sort(function(a, b) {
        // Compare 1st key
        if(a[key1] < b[key1])
            return -1 * reverse1;
        else if(a[key1] > b[key1])
            return 1 * reverse1;
        else
        {
            // Compare 2nd key
            if(a[key2] < b[key2])
                return -1 * reverse2;
            else if(a[key2] > b[key2])
                return 1 * reverse2;
            else
                return 0;
        }
    });
}

⇒ デモはこちら

yotsuba_s.jpg 参考URL

連想配列のソートについてはすでに多くの記事がありますのでそちらも参考に。

JavaScript つい忘れてしまう配列のソート方法
http://qiita.com/PianoScoreJP/items/f0ff7345229871039672

Javascriptでオブジェクトの配列をKey/Valueでソートする関数
http://qiita.com/n0bisuke/items/f2dd06bfb0e4daa1e0d8


(・o・ゞ いじょー。