JavaScript 配列の要素を並べ替える

スポンサーリンク

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)の並べ替えは行われません。

コメント

タイトルとURLをコピーしました