Результат
Все вычисления выполняются локально в браузере: разбор, график, экспорт. Если отключите сеть, страница продолжит работать.
Факты и границы применимости
| Направление | По убыванию, Я→А (для обычного А→Я есть отдельная сортировка строк) |
|---|---|
| Сравнение | По кодовым точкам Unicode по умолчанию, либо locale-зависимый natural-порядок при включённой опции |
| Регистр | По умолчанию не учитывается: «яблоко» и «Яблоко» считаются равными |
| Пустые строки | Сортируются вместе с остальными — обычно оказываются в самом низу |
| Не то же самое, что | Простой разворот порядка ввода — для этого есть утилита разворота порядка списка |
| Устойчивость | Равные строки (после приведения регистра) сохраняют исходный порядок друг относительно друга |
Когда этот метод вводит в заблуждение
- Это сортировка по алфавиту, а не по порядку набора — уже отсортированный А→Я список превратится здесь в Я→А, но список в случайном порядке будет полностью перестроен, а не просто перевёрнут. Если нужно лишь зеркально отразить порядок ввода, используйте утилиту разворота порядка списка.
- Без natural-сортировки «10» в этом обратном порядке окажется после «2» по неверной причине: посимвольно «1» меньше «2», поэтому при убывании «2» оказывается выше «10». Включите natural-сортировку для корректного убывающего числового порядка (10, 9, 8… 2, 1).
- Регистронезависимое сравнение сворачивает буквы только для самого сравнения — в результате исходный регистр каждой строки сохраняется без изменений.
- Сортировка не зависит от локали (обычный порядок кодовых точек), пока не включена natural-сортировка — тогда используется locale-зависимое сравнение браузера, и буквы с диакритикой могут упорядочиться не так, как ожидается.
Как это считается
Текст разбивается на строки, затем прогоняется через Array.sort с компаратором, который инвертирует обычный результат — то, что обычно шло бы первым, теперь идёт последним.
При включённом регистронезависимом сравнении обе сравниваемые строки приводятся к нижнему регистру перед сравнением, поэтому видимый регистр роли не играет — важны только буквы и их последовательность, читаемая в обратном порядке.
Natural-сортировка сравнивает через localeCompare в числовом режиме и затем инвертирует результат, поэтому последовательности цифр воспринимаются как целые числа и упорядочиваются от большего к меньшему, а не посимвольно.
Результат — отсортированный массив, снова склеенный переносами строк: сколько строк на входе, столько и на выходе, просто переставленных от Я до А вместо А до Я.
Вопросы и ответы
Это то же самое, что перевернуть список сверху вниз?
Нет. Эта утилита пересортировывает по алфавиту, поэтому результат зависит только от букв в каждой строке, а не от порядка, в котором вы их набрали. Чтобы просто перевернуть порядок набора, используйте разворот порядка списка.
Сортируются строки или слова?
Строки. Каждая строка входного текста — один элемент для сортировки. Для сортировки отдельных слов используйте утилиту сортировки слов по алфавиту.
Почему «10» оказывается после «2» без natural-сортировки?
Потому что сравнение идёт посимвольно: «1» меньше «2», поэтому при убывании «2» оказывается выше «10». Включите natural-сортировку для настоящего убывающего числового порядка.
Как получить обычный порядок А→Я?
Используйте утилиту сортировки строк — та же логика, но по возрастанию, со своими настройками регистра и natural-сортировки (плюс опциональное удаление дубликатов).
Мой список куда-то отправляется?
Нет. Сортировка целиком выполняется в вашем браузере, ничего не отправляется на сервер.