では実際に「数値を sort() したときにおかしくなる例」を一緒に試してみましょう。
例:数値をそのまま sort() した場合
let numbers = [5, 27, 12, 41];
console.log("元の配列:", numbers);
numbers.sort();
console.log("sort()の結果:", numbers);
JavaScript実行結果(ブラウザのコンソールなどで試すと…)
元の配列: [5, 27, 12, 41]
sort()の結果: [12, 27, 41, 5]
なぜこうなるの?
sort()は デフォルトで「文字列」として比較 します。- つまり
"12" < "5"と判断されるため、12が5より前に来てしまうのです。
正しい数値の並べ替え(比較関数を使う)
let numbers = [5, 27, 12, 41];
// 昇順
numbers.sort((a, b) => a - b);
console.log("昇順:", numbers);
// 降順
numbers.sort((a, b) => b - a);
console.log("降順:", numbers);
JavaScript実行結果
昇順: [5, 12, 27, 41]
降順: [41, 27, 12, 5]
