オブジェクトをソート
少し前に数をソートで、ソートに触れましたけど
検索して調べてみると、これはつまり数が多ければ正、少なければ負、同じであれば0を返して
それで比較関数がなんたらかんかたらでソートしているんだとか。
Array.sort( function(a, b) {return a- b} );
良く見てみると、なるほどそーなっとる。
ならば数ではなくて、文字はどうすれば良いのか。
Array.sort( function(a, b) {return (a > b) ? 1: (a < b) ? -1: 0} );
'-'ではなく、'<>'を使えば良いらしい。
1と-1を入れ替えると、reverse()をしたのと同じになった。
文字を比較できるのか?と疑問に思って
alert('b' > 'a'); //true alert('a' > 'b'); //false
やってみると、アルファベット順を判別しているw
文字も普通に比較できるとは思わなかった。
だから、配列にオブジェクトが格納されていて
そのオブジェクトのidの名前順にするには
Array.sort( function(a, b) {return (a.id > b.id) ? 1: (a.id < b.id) ? -1: 0} );
これでいけるんじゃないかと。
1と-1は、正と負であれば1でなくても構わない様子。
とにかく、sortの戻り値を正の数、負の数、0にすればその通りにソートしてくれるらしい。