Сортировка массива объектов по свойству в JavaScript: методы и примеры

Чтобы отсортировать массив объектов по определенному свойству в JavaScript, вы можете использовать несколько методов. Вот несколько часто используемых подходов:

  1. Array.prototype.sort():
    Вы можете использовать метод sort()массива и предоставить функцию сравнения, которая сравнивает желаемое свойство объектов.
array.sort((a, b) => a.property - b.property);

Замените 'property'фактическим именем свойства, по которому вы хотите выполнить сортировку. Обратите внимание, что этот метод сортирует массив на месте.

  1. lodash sortBy():
    Если у вас есть библиотека lodash, вы можете использовать функцию sortBy(), которая предоставляет краткий и простой в использовании метод сортировки.
_.sortBy(array, 'property');

И снова замените 'property'фактическим именем свойства. Этот метод возвращает новый отсортированный массив без изменения исходного массива.

  1. Array.prototype.reduce():
    Вы также можете использовать метод reduce()для создания нового отсортированного массива, перебирая исходный массив и вставляя каждый объект в правильную позицию. на основе желаемого свойства.
const sortedArray = array.reduce((acc, obj) => {
  const index = acc.findIndex(item => item.property > obj.property);
  if (index === -1) {
    acc.push(obj);
  } else {
    acc.splice(index, 0, obj);
  }
  return acc;
}, []);

Замените 'property'фактическим именем свойства. Этот метод возвращает новый отсортированный массив без изменения исходного массива.

  1. Array.from() и Array.prototype.sort():
    Если вы хотите избежать изменения исходного массива и создать новый отсортированный массив, вы можете использовать Array.from()чтобы создать неполную копию и затем отсортировать ее с помощью метода sort().
const sortedArray = Array.from(array).sort((a, b) => a.property - b.property);

Замените 'property'фактическим именем свойства.