Перейти к основному содержимому

📄 Сортировка массива

Описание задачи

Дан массив чисел. Используйте функцию sort, чтобы отсортировать массив. Предоставьте решения для обоих сценариев:

  1. По возрастанию (от меньшего к большему)
  2. По убыванию (от большего к меньшему)

Сортировка по возрастанию

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

// Using a comparison function
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]

Намеренно добавляем строки

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.

Сортировка объектов

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