Home > Javascriptのソート

Javascriptのソート

JavascriptのArrayオブジェクトに存在するsortメソッドのより詳しい使い方について、理解が足りていないので、メモ。

以下が単純な配列のソート

var nums = [ 5, 4, 2, 7, 1, 6, 3 ];
nums.sort();
alert(nums); //結果「1234567」

じゃぁオブジェクトの、あるプロパティ値を比較してソートするには?


var objs = [
{ "name" : 'beyonce', "age" : 24 },
{ "name" : 'aiko', "age" : 18 },
{ "name" : 'celine', "age" : 20 }
];

objs.sort(function(a,b){
return b.age - a.age;
});

for(var i = 0; i < objs.length; i++){
alert(objs[i].name);
}
// beyonce, celine, aikoの順に表示されます

sort()メソッドの引数に比較用の関数をつっこんであげます。
関数の結果が正の値であれば降順、不の値であれば昇順にオブジェクトがソートされます。

文字列でソートしたい場合は比較関数部分が変わって

objs.sort( function(a,b){
return (a.name > b.name) ? 1 : -1;
});
//aiko, beyonce, celineの順に表示されます

コメント

コメントを投稿





このエントリーのトラックバックURL

http://www.trapple.net/blog/mt/mt-tb.cgi/24

トラックバック

old young lesbian taboo

2007年04月24日 11:30 | old young lesbian taboo