Задать вопрос
Mambli-Joe
@Mambli-Joe

Как a и b попадают в sort()?

Доброго времени суток. Сам не могу понять, прошу помощи.
Читаю материал по ссылке
И есть такое место

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

a и b - элементы сортируемого массива? Почему они попадают в a и b? Метод sort получает функцию в качестве параметра, но про ее аргументы я не нашел информацию. Я, точно, пропустил какой-то материал, но куда смотреть что б понять?
  • Вопрос задан
  • 190 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 3
deepblack
@deepblack
Перебираются элементы numbers и передаются в compareFunction

arr.sort([compareFunction])
https://developer.mozilla.org/ru/docs/Web/JavaScri...

UPD:
А если текущий и следующий элемент в середине массива, то как они сравниваются с теми что были в начале?


Они перебираются до тех пор пока массив не будет полностью отсортирован:
const array = [25, 8, 7, 41, 1, 3];

array.sort((a,b) => {
  console.log(`compare ${a},${b}`);
  return a > b ? 1 : a === b ? 0 : -1;
});


Вывод
compare 25,8
compare 25,7
compare 8,7
compare 25,41
compare 41,1
compare 25,1
compare 8,1
compare 7,1
compare 41,3
compare 25,3
compare 8,3
compare 7,3
compare 1,3
[ 1, 3, 7, 8, 25, 41 ]

https://repl.it/repls/HappyUnwieldyCoderesource
Ответ написан
hzzzzl
@hzzzzl
слева направо

Insertion-sort-example.gif
Ответ написан
Комментировать
a, b это элементы массива numbers, текущий и следующий
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы