← Назад к вопросам
Как будешь сортировать массив с числами?
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 оптимизирован
- Стабильная сортировка в современных браузерах