← Назад к вопросам

Как будешь сортировать массив с числами?

1.8 Middle🔥 171 комментариев
#JavaScript Core

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI2 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Как будешь сортировать массив с числами?

Основной метод: Array.sort() с компаратором

Для сортировки массива чисел нужно передать компаратор:

const numbers = [5, 2, 8, 1, 9];
numbers.sort((a, b) => a - b); // [1, 2, 5, 8, 9]

Почему стандартная сортировка неправильна?

Без компаратора JavaScript сортирует как строки:

const arr = [10, 5, 40, 25];
arr.sort(); // [10, 25, 40, 5] НЕПРАВИЛЬНО
arr.sort((a, b) => a - b); // [5, 10, 25, 40] ПРАВИЛЬНО

Сортировка без мутации

Если нужно сохранить исходный массив:

const numbers = [5, 2, 8, 1, 9];
const sorted = [...numbers].sort((a, b) => a - b);

Примеры использования

Возрастание и убывание:

numbers.sort((a, b) => a - b); // возрастание
numbers.sort((a, b) => b - a); // убывание

Отрицательные числа:

const mixed = [-5, 3, -2, 0, 10];
mixed.sort((a, b) => a - b); // [-5, -2, 0, 3, 10]

Сортировка объектов по числовому полю:

const users = [{id: 3}, {id: 1}, {id: 2}];
users.sort((a, b) => a.id - b.id);

Временная сложность

  • O(n log n) в среднем случае
  • Встроенный алгоритм V8 оптимизирован
  • Стабильная сортировка в современных браузерах
Как будешь сортировать массив с числами? | PrepBro