Блог
Текстовые утилиты

Обратная сортировка строк по алфавиту

Вставьте список, по одному пункту на строку, — и все строки сортируются от Я до А на каждое нажатие клавиши, строго противоположно обычной сортировке по алфавиту. Порядок строится заново по самим буквам — это не то же самое, что просто перевернуть порядок, в котором вы набрали строки (для этого есть отдельная утилита разворота порядка списка).

Результат

Строк отсортировано —

Все вычисления выполняются локально в браузере: разбор, график, экспорт. Если отключите сеть, страница продолжит работать.

Факты и границы применимости

Направление По убыванию, Я→А (для обычного А→Я есть отдельная сортировка строк)
Сравнение По кодовым точкам Unicode по умолчанию, либо locale-зависимый natural-порядок при включённой опции
Регистр По умолчанию не учитывается: «яблоко» и «Яблоко» считаются равными
Пустые строки Сортируются вместе с остальными — обычно оказываются в самом низу
Не то же самое, что Простой разворот порядка ввода — для этого есть утилита разворота порядка списка
Устойчивость Равные строки (после приведения регистра) сохраняют исходный порядок друг относительно друга

Когда этот метод вводит в заблуждение

Как это считается

Текст разбивается на строки, затем прогоняется через Array.sort с компаратором, который инвертирует обычный результат — то, что обычно шло бы первым, теперь идёт последним.

При включённом регистронезависимом сравнении обе сравниваемые строки приводятся к нижнему регистру перед сравнением, поэтому видимый регистр роли не играет — важны только буквы и их последовательность, читаемая в обратном порядке.

Natural-сортировка сравнивает через localeCompare в числовом режиме и затем инвертирует результат, поэтому последовательности цифр воспринимаются как целые числа и упорядочиваются от большего к меньшему, а не посимвольно.

Результат — отсортированный массив, снова склеенный переносами строк: сколько строк на входе, столько и на выходе, просто переставленных от Я до А вместо А до Я.

Вопросы и ответы

Это то же самое, что перевернуть список сверху вниз?

Нет. Эта утилита пересортировывает по алфавиту, поэтому результат зависит только от букв в каждой строке, а не от порядка, в котором вы их набрали. Чтобы просто перевернуть порядок набора, используйте разворот порядка списка.

Сортируются строки или слова?

Строки. Каждая строка входного текста — один элемент для сортировки. Для сортировки отдельных слов используйте утилиту сортировки слов по алфавиту.

Почему «10» оказывается после «2» без natural-сортировки?

Потому что сравнение идёт посимвольно: «1» меньше «2», поэтому при убывании «2» оказывается выше «10». Включите natural-сортировку для настоящего убывающего числового порядка.

Как получить обычный порядок А→Я?

Используйте утилиту сортировки строк — та же логика, но по возрастанию, со своими настройками регистра и natural-сортировки (плюс опциональное удаление дубликатов).

Мой список куда-то отправляется?

Нет. Сортировка целиком выполняется в вашем браузере, ничего не отправляется на сервер.

Похожие утилиты

Все утилиты