Разработка на 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 часов теории и практики, мастер-классы с реальными рабочими задачами, опытные преподаватели, кураторы и наставники. За время обучения сделаете два полноценных проекта для портфолио и множество домашних заданий, чтобы отработать навыки.
Добавить комментарий