Код Middle Реализация с нуля обновлено

Натуральная сортировка

Условие

Отсортируй строки вида «букваЧисло» сначала по букве, потом по числу как по числу: ['A100','A3','Z100','Z2'] → ['A3','A100','Z2','Z100'].

Примеры

naturalSort(["A100", "A3", "Z100", "Z2"]) // ["A3", "A100", "Z2", "Z100"]
naturalSort(["B1", "A9"]) // ["A9", "B1"]
naturalSort([]) // []

Как подойти

Проблема лексикографического сравнения чисел в строках: '10' < '3', потому что '1' < '3'. Разбор на части и числовое сравнение решает это. В общем случае, когда чисел в строке несколько, применяют Intl.Collator с опцией numeric: true - одна строка вместо разбора, назови её.

Подсказки: 2
  1. Обычная сортировка сравнивает строки посимвольно: 'A100' окажется раньше 'A3'.
  2. Разбери каждую строку на букву и число, дальше два компаратора через ||.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.