← ТехнологииНай-важното за

sort(): защо числата понякога се подреждат като текст

Издател: ResumeMaker • 1 източника

Публикувано: 21.10.2026 14:07 · Променено: 21.10.2026 14:07

AI проверка по източници: 21.10.2026 10:06. Не е редакторско одобрение.

В няколко изречения

Накратко

sort() променя самия масив. Без функция за сравнение стойностите се сравняват чрез текстовото им представяне.

Полезно е да знаеш

За числово възходящо подреждане използвай явна функция за сравнение: numbers.sort((a, b) => a - b). Без такава sort() преобразува елементите в текст и ги сравнява по UTF-16 кодови единици, което може да даде неочакван числов ред. [1]

Например [2, 10, 3].sort() става [10, 2, 3]. С (a, b) => a - b резултатът е [2, 3, 10]. Отрицателният резултат на функцията поставя a преди b, положителният — след него.

Втората честа грешка е предположението, че оригиналът остава непокътнат. sort() подрежда на място и връща същия масив. [1] Ако искаш да запазиш входа от числа, направи копие: const ordered = [...numbers].sort((a, b) => a - b);.

При обекти уточни кое свойство сравняваш. Редът по цена, заглавие и дата са различни задачи. Една функция за сравнение трябва да отговаря на избраното правило, а не просто да връща случаен true или false.

Източници

За повече подробности и проверка на информацията:

  1. [1] MDN — Array.prototype.sort ↗