Сортировка массива объектов по ключу даты с использованием JavaScript
Сортировка массива объектов на основе определенного ключа со значением даты является распространенной задачей в программировании на JavaScript. В этом случае нам нужно отсортировать массив объектов по ключу update_at, который представляет дату и время.
Самый эффективный способ добиться этого — использовать метод Array.sort() в в сочетании с функцией сравнения. Функция сравнения принимает два объекта в качестве входных данных и возвращает значение, определяющее порядок объектов.
Вот как это можно сделать:
const objects = [{
"updated_at": "2012-01-01T06:25:24Z",
"foo": "bar"
},
{
"updated_at": "2012-01-09T11:25:13Z",
"foo": "bar"
},
{
"updated_at": "2012-01-05T04:13:24Z",
"foo": "bar"
}];
// Convert the 'updated_at' strings to JavaScript Date objects
for (let i = 0; i < objects.length; i ) {
objects[i].updated_at = new Date(objects[i].updated_at);
}
// Sort the objects based on the 'updated_at' dates
objects.sort((a, b) => {
return a.updated_at - b.updated_at;
});
console.log(objects);
В этом коде мы сначала преобразуем строки update_at в объекты Date JavaScript, чтобы обеспечить согласованность типов данных. Затем мы используем метод sort() с функцией сравнения, которая вычитает значения update_at двух объектов и возвращает результат. Этот результат определяет порядок сортировки: если результат отрицательный, первый объект идет перед вторым; если положительный, то первым идет второй объект; если ноль, объекты остаются в исходном порядке.
Конечным результатом является отсортированный массив объектов со значениями ключа «updated_at» в возрастающем хронологическом порядке.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3