Автор оригинала: FreeCodeCamp Community Member.
В JavaScript мы можем легко отсортировать элементы массива со встроенным методом, называемым функцией сортировки ().
Однако типы данных (строка, номер и т. Д.) могут отличаться от одного массива к другому. Это означает, что использование только метода сортировки () не всегда является соответствующим решением.
В этом посте вы узнаете, как сортировать массив в JavaScript с помощью метода сортировки () для строк и цифр.
Массив струн
Давайте начнем с строк:
const teams = ['Real Madrid', 'Manchester Utd', 'Bayern Munich', 'Juventus'];
Когда мы используем метод сортировки (), элементы будут отсортированы в порядке возрастания (A до Z) по умолчанию:
teams.sort(); // ['Bayern Munich', 'Juventus', 'Manchester Utd', 'Real Madrid']
Если вы предпочитаете сортировать массив в порядке убывания, вам необходимо использовать метод Reverse () вместо этого:
teams.reverse(); // ['Real Madrid', 'Manchester Utd', 'Juventus', 'Bayern Munich']
Массив номеров
Сортировка номеров, к сожалению, не так просто. Если мы применим метод сортировки непосредственно на массив чисел, мы увидим неожиданный результат:
const numbers = [3, 23, 12]; numbers.sort(); // --> 12, 23, 3
Почему метод sort () не работает на цифры
На самом деле это работает, но эта проблема происходит, потому что JavaScript сортирует номера в алфавитном порядке. Позвольте мне объяснить это подробно.
Давайте подумаем, и.
const myArray = ['C', 'BC', 'AB']; myArray.sort(); // [AB, BC, C]
В качестве примера, если у нас есть три строки в виде C (3), BC (23) и AB (12), JavaScript сортируют их как Ab, BC и C в порядке возрастания, который является алфавитным правильным.
Однако JavaScript снова сортируют номера (в алфавитном порядке) 12, 23, а 3, что неверно.
Решение: функция сравнения
К счастью, мы можем поддерживать метод Sort () с базовой функцией сравнения, которая сделает трюк:
function(a, b) {return a - b}
К счастью, метод сортировки, к счастью, может сортировать отрицательные, ноль и положительные значения в правильном порядке. Когда метод SORT () сравнивает два значения, он отправляет значения в наше функцию сравнения и сортирует значения в соответствии с возвращенным значением.
- Если результат отрицательный, а сортируется до б.
- Если результат положительный, B отсортирован до.
- Если результат 0, ничего не меняется.
Все, что нам нужно использовать функцию сравнения внутри метода сортировки ():
const numbers = [3, 23, 12]; numbers.sort(function(a, b){return a - b}); // --> 3, 12, 23
Если мы хотим отсортировать номера в порядке убывания, на этот раз нам нужно вычесть второй параметр (b) от первого (A):
const numbers = [3, 23, 12]; numbers.sort(function(a, b){return b - a}); // --> 23, 12, 3
Заворачивать
Так как мы можем видеть, сортировка элементов массива можно легко сделать в JavaScript с методом SORT (), если мы знаем, как правильно использовать его. Я надеюсь, что мой пост поможет вам понять, как использовать метод Worth () в JavaScript правильно.
Если вы хотите узнать больше о веб-разработке, не стесняйтесь посещать мой YouTube канал .
Спасибо за чтение!