Javascript. помочь понять, как работает функция сравнения при сортировке чисел в массиве - PullRequest
0 голосов
/ 02 ноября 2018

Хорошо, я понимаю, как сортировать числа от больших к маленьким или от маленьких к большим. то, что я не понимаю, как это на самом деле делается с помощью JavaScript. Может ли кто-нибудь шаг за шагом рассказать мне, как javascript сортирует следующий массив? Я знаю, как его использовать, мне нужно это понять.

var arr = [3, 2, 4, 5, 1]

function sorter(a, b) {
  return a - b;
}
arr.sort(sorter)

можете ли вы показать мне, какое число для a, а какое для b, и как оно перебирает остальную часть массива. Например, 3 - 2 равно 1, поэтому он переключился бы с 2 на индекс ниже 3, как это будет продолжаться для всего этого массива? Я хочу понять, почему это работает, а не просто использовать это вслепую. Спасибо !!

1 Ответ

0 голосов
/ 02 ноября 2018

можете ли вы показать мне, какое число для a, а какое для b, и как оно перебирает остальную часть массива.

это не имеет значения; и это не указано.

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

  • 0 если эти значения идентичны с точки зрения порядка
  • <0 если первый аргумент должен быть перед вторым аргументом
  • >0 если первый аргумент должен быть после второго аргумента

Возможно, вы захотите проверить некоторые алгоритмы сортировки

...