Разработка на Java — востребованное направление, такие специалисты будут нужны на рынке еще долго. На курсе «Java-разработчик» от Skypro освоить профессию можно с нуля за 11 месяцев, даже если вы гуманитарий и ничего не знаете об IT. Программа составлена от простого к сложному и адаптирована для новичков. Преподаватели — практикующие специалисты из крупных компаний: «Сбер», «Самокат» и других.
При работе с массивами объектов в JavaScript часто возникает необходимость отсортировать эти объекты по определенному свойству. Рассмотрим пример: есть массив объектов, представляющих собой каталог книг. Каждый объект содержит информацию о книге: название, автора и цену.
var books = [ { "title": "Властелин колец", "author": "Дж. Р. Р. Толкин", "price": "500" }, { "title": "Гарри Поттер и философский камень", "author": "Дж. К. Роулинг", "price": "400" }, { "title": "1984", "author": "Джордж Оруэлл", "price": "300" } ];
Задача: отсортировать массив книг по цене в возрастающем или убывающем порядке.
В JavaScript для сортировки массивов используется встроенный метод sort()
. Однако этот метод по умолчанию сортирует элементы как строки, что может привести к неправильной сортировке числовых значений.
Для правильной сортировки числовых значений, таких как цена в нашем примере, sort()
принимает необязательную функцию сравнения в качестве аргумента. Эта функция должна принимать два элемента массива для сравнения и возвращать значение, которое определяет их относительный порядок.
books.sort(function(a, b) { return a.price - b.price; });
В этом примере функция сравнения принимает два объекта из массива books
и сравнивает их свойства price
. Если a.price
меньше b.price
, то функция вернет отрицательное значение и a
будет расположен перед b
. Если a.price
больше b.price
, то функция вернет положительное значение и a
будет расположен после b
.
Для сортировки в обратном порядке, достаточно поменять местами a
и b
:
books.sort(function(a, b) { return b.price - a.price; });
Таким образом, с помощью встроенного метода sort()
и функции сравнения можно отсортировать массив объектов по значению любого числового свойства в возрастающем или убывающем порядке.
Освойте Java на курсе онлайн-университета Skypro. Учебе нужно будет уделять всего 10 часов в неделю: сможете совмещать с работой и личными делами. Вас ждут 440 часов теории и практики, мастер-классы с реальными рабочими задачами, опытные преподаватели, кураторы и наставники. За время обучения сделаете два полноценных проекта для портфолио и множество домашних заданий, чтобы отработать навыки.
Добавить комментарий