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

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

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

Результат

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

У этой страницы вообще нет серверной части. Вставленная таблица разбирается кодом JavaScript внутри вашего же браузера, график рисуется на элементе canvas на вашей машине, файл экспорта собирается локально. Ничего не загружается, не хранится и не пишется ни в какие логи. После загрузки страницы можно отключить сеть — всё продолжит работать, и это самый простой способ проверить обещание самостоятельно.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Все утилиты