Junior
111
questionbank
Как бы вы отсортировали массив чисел?
Ответ от нейросети
sobes.tech AI
// Используем метод sort() с функцией сравнения
const numbers = [4, 2, 5, 1, 3];
numbers.sort((a, b) => a - b); // Сортировка по возрастанию
// Для сортировки по убыванию:
// numbers.sort((a, b) => b - a);
Метод sort() в JavaScript сортирует элементы массива на месте. По умолчанию он преобразует элементы в строки и сортирует их лексически. Чтобы сортировать числа правильно, необходимо передать в sort() функцию сравнения.
Функция сравнения принимает два аргумента, a и b.
- Если функция возвращает отрицательное число,
aбудет передb. - Если функция возвращает положительное число,
bбудет передa. - Если функция возвращает 0, порядок элементов не изменяется.
Для сортировки чисел по возрастанию используется (a, b) => a - b. Если a меньше b, результат отрицательный, и a идет перед b.
Для сортировки по убыванию используется (a, b) => b - a. Если b меньше a, результат положительный, и b идет перед a.
Другие методы (менее частые для простых числовых массивов, но полезные):
-
Метод
localeCompare()для строк с числами:// Не рекомендуется для чистых чисел, но может использоваться // если числа представлены как строки и нужно учитывать локали. const stringNumbers = ["10", "2", "1"]; stringNumbers.sort((a, b) => a.localeCompare(b, undefined, { numeric: true })); // Отсортирует как [ "1", "2", "10" ] -
Создание копии массива перед сортировкой:
// Если нужно сохранить исходный массив const originalNumbers = [4, 2, 5, 1, 3]; const sortedNumbers = [...originalNumbers].sort((a, b) => a - b); // или // const sortedNumbers = originalNumbers.slice().sort((a, b) => a - b);