Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Сортування масиву чисел». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)За умовчанням **`sort()`** перетворює елементи на рядки та сортує їх у лексикографічному порядку, тому масив чисел сортується неправильно. **Ключове:** щоб відсортувати числа за зростанням, завжди передавай функцію порівняння: `arr.sort((a, b) => a - b)`.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображення## Помилка новачків: ```javascript const numbers = [10, 1, 3, 20]; numbers.sort(); console.log(numbers); // ["1", "10", "20", "3"] - рядкова сортування ``` За умовчанням `sort()` приводить елементи до рядків і сортує **в лексикографічному порядку** (`"10"` йде перед `"2"`). --- ## Правильний спосіб - з функцією порівняння: ```javascript const numbers = [10, 1, 3, 20]; numbers.sort((a, b) => a - b); console.log(numbers); // [1, 3, 10, 20] ``` - Функція `(a, b) => a - b` повідомляє, **як порівнювати числа**: - якщо `a - b` < 0 -> `a` йде раніше - якщо `a - b` > 0 -> `b` йде раніше - якщо `a - b` = 0 -> порядок не змінюється --- ## Сортування за спаданням: ```javascript numbers.sort((a, b) => b - a); console.log(numbers); // [20, 10, 3, 1] ``` --- ## Якщо хочеш не мутувати вихідний масив: ```javascript const arr = [5, 2, 9, 1]; const sorted = [...arr].sort((a, b) => a - b); console.log(sorted); // [1, 2, 5, 9] console.log(arr); // [5, 2, 9, 1] (вихідний не змінений) ``` --- ## Коротко: | Задача | Код | Результат | |---|---|---| | За зростанням | `arr.sort((a, b) => a - b)` | `[1, 2, 3, 4]` | | За спаданням | `arr.sort((a, b) => b - a)` | `[4, 3, 2, 1]` | | Без зміни вихідного масиву | `[...arr].sort(...)` | новий відсортований масив | --- > **Підсумок:** > Щоб відсортувати числа за зростанням - > **завжди передавай функцію порівняння:** > > ```javascript > arr.sort((a, b) => a - b); > ```Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.