メインコンテンツまでスキップ

📄 Sort Array

Question Description

数値の配列が与えられた場合、sort 関数を使って配列をソートしてください。以下の2つのケースについて解法を提示してください:

  1. 小さい順にソート(昇順)
  2. 大きい順にソート(降順)

昇順ソート

const numbers = [10, 5, 50, 2, 200];

// 比較関数を使用
numbers.sort(function (a, b) {
return a - b;
});

console.log(numbers); // [2, 5, 10, 50, 200]

降順ソート

const numbers = [10, 5, 50, 2, 200];

numbers.sort(function (a, b) {
return b - a;
});

console.log(numbers); // [200, 50, 10, 5, 2]

意図的に string を混入

const mixedNumbers = [10, '5', 50, '2', 200];

mixedNumbers.sort(function (a, b) {
return Number(a) - Number(b);
});

console.log(mixedNumbers); // ['2', '5', 10, 50, 200]

ただし、この解法では数値に変換できない文字列('iphone''ipad' など)を除外できません。これらの文字列は NaN に変換され、ソート結果では最後に来る可能性がありますが、ブラウザによって結果が異なることもあります。このような場合は、filter を使って先に除外してから配列を再構成することを検討してください。

Object ソート

const mockArray = [
{ type: 'a', label: 1 },
{ type: 'a', label: 2 },
{ type: 'c', label: 1 },
{ type: 'c', label: 3 },
{ type: 'b', label: 2 },
];