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;
});
}
⇒ デモはこちら
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;
}
});
}
⇒ デモはこちら
参考URL
連想配列のソートについてはすでに多くの記事がありますのでそちらも参考に。
JavaScript つい忘れてしまう配列のソート方法
http://qiita.com/PianoScoreJP/items/f0ff7345229871039672
Javascriptでオブジェクトの配列をKey/Valueでソートする関数
http://qiita.com/n0bisuke/items/f2dd06bfb0e4daa1e0d8
(・o・ゞ いじょー。