Джерело
junjun | Пояснення до опитування вище👆🏻Ви напевно знаєте, що JS мова доволі див...
986 Охват/переглядів
2026-01-14 12:31
Повідомлення №560
Пояснення до опитування вище👆🏻Ви напевно знаєте, що JS мова доволі дивна, ось іще одне підтвердження томуНаприклад, в нас є масив [1, 2, 100, 30, 21, 1000], якщо викликати на ньому метод sort(), то ви напевно очікуєте, що JavaScript його відсортує за зростанням і в результаті ви отримаєте [1, 2, 21, 30, 100, 1000]. Але ні, так не буде. Дивно.В результаті ви отримаєте [1, 100, 1000, 2, 21, 30]. Перевірте самі, якщо не вірите.Чому ж це так працює?🤕 У JavaScript, коли ви використовуєте метод sort() без передачі функції порівняння, елементи масиву конвертуються в строки, а потім сортуються в лексикографічному порядку. Ось чому ви отримуєте результат, який може виглядати неправильним, коли ви очікуєте числове сортування.Якщо ви хочете вирішити цю проблему, ви можете передати функцію порівняння до методу sort, яка сортує елементи як числа. Ось як ви можете це зробити:[1, 2, 100, 30, 21, 1000].sort((a, b) => a - b);// [1, 2, 21, 30, 100, 1000]Майте на увазі, що копія масиву створюватись не буде. Це означає, що масив, на якому ви викликали метод sort() буде змінено на місці.#quizYouTube | LinkedIn | TikTok