通常の配列
通常の配列はsort(),reverse()を使うべし。
var arr = [3,5,1,6,3,4,6,3,6,7,4]; alert(arr); //昇順 arr.sort(); alert(arr); //降順 arr.reverse(); alert(arr);
ハッシュをキーでソートする
//keyでソートする
function keySort(hash,sort){
var sortFunc = sort || reverse;
var keys = [];
var newHash = {};
for (var k in hash) keys.push(k);
keys[sortFunc]();
var length = keys.length;
for(var i = 0; i < length; i++){
newHash[keys[i]] = hash[keys[i]];
}
return newHash;
}
//テストデータ
var hash = {
"e":55,
"f":66,
"g":77,
"name":88,
"a":11,
"b":22,
"c":33,
"d":44
};
/*
* テスト
*/
//元のハッシュ
var str = "元のハッシュ\n";
for(var k in hash) str += "key:" + k + " val:" + hash[k] + "\n";
alert(str);
//昇順(デフォルト)でソート
hash = keySort(hash);
str = "昇順\n";
for(var k in hash) str += "key:" + k + " val:" + hash[k] + "\n";
alert(str);
//降順でソート
hash = keySort(hash,"reverse");
str = "降順\n";
for(var k in hash) str += "key:" + k + " val:" + hash[k] + "\n";
alert(str);
コメントを残す