Как найти наибольшую дату в массиве объектов
Имеется массив объектов:
[
{
id: 1,
time_update: "Tue Apr 13 2020 17:06:19 GMT+0300 (Москва, стандартное время)"
},
{
id: 2,
time_update: "Tue Apr 17 2020 17:06:19 GMT+0300 (Москва, стандартное время)"
},
{
id: 3,
time_update: "Tue Apr 11 2020 17:06:19 GMT+0300 (Москва, стандартное время)"
},
...
]
Мне требуется вернуть массив объектов самых последних дат.
Написал функцию
private lastDateObjectInArray(data) {
return data.reduce((a, b) => {
if (a.time_update || b.time_update) {
return new Date(a.time_update) > new Date(b.time_update) ? a : b;
} else {
return 'Не найдено';
}
});
}
Пожалуйста, подскажите, как вернуть массив объектов (сохранив все соседние элементы), где будет несколько последних дат? Чтобы через аргумент в функции я передавал индекс, который бы указывал сколько последних объектов будет записано: lastDateObjectInArray(data, index)
Ответы (1 шт):
Автор решения: WVFFLIFE
→ Ссылка
const arr = [{
id: 1,
time_update: "Tue Apr 13 2020 17:06:19 GMT+0300 (Москва, стандартное время)"
},
{
id: 2,
time_update: "Tue Apr 17 2020 17:05:19 GMT+0300 (Москва, стандартное время)"
},
{
id: 3,
time_update: "Tue Apr 11 2020 17:04:19 GMT+0300 (Москва, стандартное время)"
},
];
function sortAndReduceArray(data, index) {
return data.sort((a, b) => {
return new Date(a['time_update']).getTime() > new Date(b['time_update']).getTime() ? -1 : 1;
})
.filter((_, elIdx) => {
return elIdx < index
})
}
console.log(sortAndReduceArray(arr, 2))