JavaScript の配列の要素を並べ替えるには、sort() メソッドを使うことができます。
基本の並べ替え
sort() メソッドは、引数無く呼び出すと、値をアルファベット順で並べ替えます。アルファベット順なので、次の例では 1 の後に 11 が続いてしまいます。
var items = [3, 1, 9, 7, 11]; var sortedItems = items.sort(); console.log(sortedItems); // -> [1, 11, 3, 7, 9]
アルファベット順以外の順序で並び替えるには、sort() メソッドの引数に関数を渡して、関数内で並び順を指定します。関数には引数として2つの値を取ります。配列内の、並び替えを行う2つの要素の値になります。
昇順の場合
昇順にする(a を b よりも前に並べる)には、関数内で負の値を返します。つまり、a から b を引いて負の値であれば昇順になります。
var items = [3, 1, 9, 7, 11]; var sortedItems = items.sort( function(a, b) { // 昇順 return a - b; } ); console.log(sortedItems); // -> [1, 3, 7, 9, 11]
降順の場合
降順にするには、関数内で正の値を返します。昇順の時とは演算を変え、b から a を引くことになります。
var items = [3, 1, 9, 7, 11]; var sortedItems = items.sort( function(a, b) { // 降順 return b - a; } ); console.log(sortedItems); // -> [11, 9, 7, 3, 1]
なお、関数内でリターンする値が 0 であれば、比較対象の2つの要素(a と b)の並べ替えは行われません。