LoginSignup
21
21

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-07-31

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・ゞ いじょー。

21
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
21