Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг
ПРИХОДИТЕ УЧИТЬСЯ НОВОЙ ПРОФЕССИИ ЛЕТОМ СО СКИДКОЙ ДО 70% Забронировать скидку
07 Июл 2023
2 мин
283

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

Возникает ситуация, когда есть массив объектов JavaScript, и требуется отсортировать эти объекты по значению свойства, которое является строкой. Например,

Возникает ситуация, когда есть массив объектов JavaScript, и требуется отсортировать эти объекты по значению свойства, которое является строкой. Например, есть массив объектов, где каждый объект представляет информацию о студенте: его имя и фамилию. И задача состоит в том, чтобы отсортировать этот массив по фамилии студентов.

var students = [
    { firstName: 'Иван', lastName: 'Иванов' },
    { firstName: 'Петр', lastName: 'Петров' },
    { firstName: 'Сидор', lastName: 'Сидоров' }
];

Метод sort() в JavaScript используется для сортировки элементов массива. Он работает прекрасно с числами и строками, но для сортировки массива объектов по значению свойства строки требуется немного больше кода.

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

  • отрицательное число, если первый элемент меньше второго,
  • положительное число, если первый элемент больше второго,
  • ноль, если элементы равны.

Вернемся к примеру со студентами. Для сортировки массива студентов по фамилии можно использовать следующий код:

students.sort(function(a, b) {
    var nameA = a.lastName.toUpperCase(); // приведем все к верхнему регистру для корректного сравнения
    var nameB = b.lastName.toUpperCase();
    if (nameA < nameB) {
        return -1;
    }
    if (nameA > nameB) {
        return 1;
    }
    return 0; // имена равны
});

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

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

Подарок
Забрать подарок