Чтобы отсортировать массив объектов по определенному свойству в JavaScript, вы можете использовать несколько методов. Вот несколько часто используемых подходов:
- Array.prototype.sort():
Вы можете использовать методsort()массива и предоставить функцию сравнения, которая сравнивает желаемое свойство объектов.
array.sort((a, b) => a.property - b.property);
Замените 'property'фактическим именем свойства, по которому вы хотите выполнить сортировку. Обратите внимание, что этот метод сортирует массив на месте.
- lodash sortBy():
Если у вас есть библиотека lodash, вы можете использовать функциюsortBy(), которая предоставляет краткий и простой в использовании метод сортировки.
_.sortBy(array, 'property');
И снова замените 'property'фактическим именем свойства. Этот метод возвращает новый отсортированный массив без изменения исходного массива.
- 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'фактическим именем свойства. Этот метод возвращает новый отсортированный массив без изменения исходного массива.
- Array.from() и Array.prototype.sort():
Если вы хотите избежать изменения исходного массива и создать новый отсортированный массив, вы можете использоватьArray.from()чтобы создать неполную копию и затем отсортировать ее с помощью методаsort().
const sortedArray = Array.from(array).sort((a, b) => a.property - b.property);
Замените 'property'фактическим именем свойства.