Сортировка — очень частая тема при поиске работы, в основном во время технических собеседований. Некоторые языки имеют встроенный метод сортировки для простой сортировки массивов, но в Javascript это немного сложно. Технически функция сортировки существует, однако ее реализация не так проста.

Если мы возьмем массив со случайным числом и применим к нему сортировку, порядок элементов изменится, но сортировка не будет полной. например

Это связано с тем, что sort является функцией более высокого порядка и принимает функцию в качестве аргумента. Если мы не предоставляем функцию функции сортировки, числа преобразуются в строку и сортируются в порядке Юникода. Функция, которую мы передаем для сортировки, называется функцией сравнения и следует определенному шаблону:

Давайте посмотрим, как мы можем преобразовать это в код и использовать его для сортировки приведенного выше массива в порядке возрастания.

Мы можем просто сравнить два элемента массива, если a меньше, чем b, то мы вернем -1, так что a стоит перед b. Если a больше, чем b, то мы должны вернуть 1, чтобы b стоял перед a. Если ни одно из них не верно, то мы просто возвращаем 0, это означает, что оба равны.

Функцию сравнения можно легко изменить для сортировки массива в порядке убывания, мы просто меняем условия, и все готово!

Мы должны помнить о функции сортировки, потому что это изменяющая функция, поэтому, если вы хотите сохранить свой исходный массив, вы всегда должны использовать сортировку, сначала сделав копию исходного массива.

На сегодня все, и до следующего раза удачного кодирования!