Что выполняется в функции, и для чего. Почему значения а и б минусуются

Почему значения а и б минусуются?

const arr = [1, 14, 4, 30, 54];
const compareNum = (a, b) => {
    return a - b;
}

let sorted = arr.sort(compareNum);
console.log(sorted);


Ответы (1 шт):

Автор решения: Алексей Шиманский

Начнём с того, что колбэк функция (если таковую указывать) в методе sort, определяет порядок сортировки. Чуть подробнее о методе в ссылке выше или https://ru.stackoverflow.com/a/1231786/191482.

Она может возвращать значения больше нуля, меньше нуля или ноль.

Если рассматривать текущий случай:

compareNum (a, b) => a - b;

Получаем:

  • Если a > b, то a - b вернет положительное число
  • Если a < b, то a - b вернёт отрицательное число
  • Если равны, то a - b вернёт 0.

Что как раз и соответствует требованиям, которые описаны выше


P.S. a - b - сортировка по возрастанию, b - a - сортировка по убыванию

→ Ссылка