Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
11 Мар 2023
2 мин
3491

Правильная сортировка массива целых чисел в JavaScript

Очень часто при разработке на JavaScript возникает необходимость сортировки массива целых чисел. Но иногда результаты этой операции могут быть неожиданными.

Разработка на Java — востребованное направление, такие специалисты будут нужны на рынке еще долго. На курсе «Java-разработчик» от Skypro освоить профессию можно с нуля за 11 месяцев, даже если вы гуманитарий и ничего не знаете об IT. Программа составлена от простого к сложному и адаптирована для новичков. Преподаватели — практикующие специалисты из крупных компаний: «Сбер», «Самокат» и других.

Очень часто при разработке на JavaScript возникает необходимость сортировки массива целых чисел. Но иногда результаты этой операции могут быть неожиданными.

Представим, что у нас есть следующий массив:

var numbers = [120, 10, 200];
numbers = numbers.sort();

В результате мы получим массив [10, 120, 200], что и ожидалось. Однако, если мы попробуем отсортировать массив [2000, 10, 100], то получим [10, 100, 2000]. Как видно, функция sort() обрабатывает значения в массиве как строки, а не как числа.

Это происходит потому, что функция sort() в JavaScript по умолчанию сортирует элементы массива как строки. Это означает, что при сортировке чисел, они сначала преобразуются в строки, а затем сравниваются. Это может привести к неверным результатам при сортировке чисел.

Для того чтобы отсортировать массив чисел корректно, необходимо передать в функцию sort() дополнительный параметр — функцию сравнения.

var numbers = [2000, 10, 100];
numbers = numbers.sort(function(a, b) {
  return a - b;
});

Функция сравнения принимает два аргумента и возвращает значение меньше, больше или равное нулю. Если возвращаемое значение меньше нуля, первый аргумент сортируется перед вторым. Если возвращаемое значение больше нуля, второй аргумент сортируется перед первым. И если возвращаемое значение равно нулю, порядок элементов не изменяется.

Таким образом, применив функцию сравнения, мы можем корректно отсортировать массив целых чисел в JavaScript.

Освойте Java на курсе онлайн-университета Skypro. Учебе нужно будет уделять всего 10 часов в неделю: сможете совмещать с работой и личными делами. Вас ждут 440 часов теории и практики, мастер-классы с реальными рабочими задачами, опытные преподаватели, кураторы и наставники. За время обучения сделаете два полноценных проекта для портфолио и множество домашних заданий, чтобы отработать навыки.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий