Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
06 Июл 2023
3 мин
3340

Сортировка массива объектов по значению свойства в JavaScript

При работе с массивами объектов в JavaScript часто возникает необходимость отсортировать эти объекты по определенному свойству. Рассмотрим пример: есть

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

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

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