Enumerable#sortBy
prototype.jsを利用すると、配列にソートAPI(sortBy)が追加されます。
- 引数でソートする値を返す関数を指定します。関数が返す値にしたがって、配列がソートされます。
- 関数の引数として、配列の値とインデックスが渡されます。
var stdout = $("stdout"); // ソートする配列 var list = [ 3, 4, 7, 10, 2, 5, 6, 11]; // ソートする / 引数でソートする値を返す関数を指定する。 stdout.innerHTML += list.sortBy( function( value, index ) { // 第一引数で配列の値、第二引数でインデックスが渡される。 return value;// 値でソート } ).join(",") + "<br/>"; stdout.innerHTML += list.sortBy( // インデックスでソート (この場合逆順に並び替える) function( value, index ) { return index * -1; } ).join(",") + "<br/>";
実行結果です。
2,3,4,5,6,7,10,11 11,6,5,2,10,7,4,3