配列の要素をソートする
sort()メソッドは配列の要素をソートするために使用され、デフォルトではアルファベット順にソートされます。他の基準でソートしたい場合は、カスタム比較関数をパラメータとしてsort()メソッドに渡します。
sort()メソッドは新しい配列を作成しません。元の配列を直接変更します。
デフォルトでは、sort()メソッドは配列要素を文字列に変換して、ユニコードのコード順でソートを行います。つまり数値をソートすると、数値の大きさではなく、文字列の辞書順でソートされることを意味します。
比較関数がなければ、数値の大きさによるソートは行えない。比較関数は2つの引数を受け取り、比較される配列の2つの要素を表し、返される値によって昇順または降順のソートが可能になる。
sort()メソッドの一般的な利用方法を以下に示します。
- デフォルトのソート(アルファベット順):
var fruits = ['apple', 'banana', 'cherry', 'date'];
fruits.sort();
console.log(fruits); // ['apple', 'banana', 'cherry', 'date'];
- 数値の並べ替え:
var numbers = [10, 5, 8, 2, 1];
numbers.sort(function(a, b) {
return a - b;
});
console.log(numbers); // [1, 2, 5, 8, 10];
- 降順に並べ替える
var numbers = [10, 5, 8, 2, 1];
numbers.sort(function(a, b) {
return b - a;
});
console.log(numbers); // [10, 8, 5, 2, 1];
sort() メソッドは、元の配列を変更するという点と、文字列の比較に基づいて並べ替えるため、特殊なケースでは追加の処理が必要になる場合があります。