Прочитал одно из возможных объяснений в обсуждении. Поскольку в английском не слишком хорош, могу сделать ошибки. По этой причине, пожалуйста, если был где-то не прав, поправьте, буду благодарен.
Ссылка на то, где мной это было прочитано.
В основе своём метод
sort(), как уже понятно из названия сортирует массив элементов. При сортировке букв он используется порядок UTF-6, именно по потому он может сортировал от А до Я, предварительно вызывая
String для преобразования элементов массива в строку
(то же самое происходит и с числами). Исходя из вышеперечисленного, метод
sort() сортирует элементы исходя из
Unicode. Для сортировки чисел в метод передаётся аргументы, которые очень часто называется (a, b), где проходит сравнение, что => a - b.
В случае с заданием, нам приходится сократить код и использовать только один знак, в моём случае это n. Почему же код действует? Как я понял это происходит потому, что компаратор
(как я понял из одного из ответов на просторах в интернете, компаратор – это метод класса, который реализует сравнение объектов, признаки равенства и неравенства коего определяет тот, кто этот класс создал), использует тот факт,
что его аргументы передаются слева-направо, из-за чего для многих массивов порядок сортировки такой: [‘A’, ’B’, ’C’, ’D’] => A> B> C> D, что собственно, логично. Следовательно, при перестановке в порядке возрастания – это фактически разворот
(этот момент не совсем был мной понят).
Однако, нечто подобное будет работать только для массивов с длиной менее одиннадцать, так как
NodeJS переключает алгоритм сортировки для разных размеров массива, хотя это также используется и в других языках
(стоит заметить, человек, написавший последнее, не проверял V8, чтобы подтвердить это).
Можно даже сказать, что подобного рода реализация ошибочна, поскольку кроме как в CodeWars код не работает от слова совсем и он вообще не должен был работать.
Таким образом, более-менее вероятный ответ – это допущение в NodeJS.