Рубрики
Без рубрики

Сортировать JavaScript Sort – как использовать методы Sort js (с примерами кода)

В JavaScript мы можем легко отсортировать элементы массива со встроенным методом, называемым функцией сортировки (). Однако типы данных (строка, номер и т. Д.) могут отличаться от одного массива к другому. Это означает, что использование только метода сортировки () не всегда является соответствующим решением. В этом

Автор оригинала: 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 канал .

Спасибо за чтение!