У меня есть массив объектов.Каждый объект содержит атрибут Date.
Мне нужно вернуть массив объектов с атрибутами date.однако объекты, имеющие атрибуты даты, которые являются последовательными днями (с интервалом в 1 день), должны находиться в своем собственном массиве.
пример ввода:
const inputArray = [ObjectwDate, ObjectwDate, ObjectwDate, ObjectwDate, ObjectwDate, ObjectwDate, ObjectwDate, ObjectwDate];
пример ожидаемого вывода:
// example output
const finalArray = [ObjectwDate, ObjectwDate, [ObjectwDate, ObjectwDate, ObjectwDate], ObjectwDate, [ObjectwDate, ObjectwDate]];
Я действительно потерян, как заставить это работать во всех случаях.Пока что у меня есть что-то похожее на следующее:
const rangeArray = [];
const finalArray = [];
// sort input array for oldest date
const format = inputArray.sort((a, b) => (
new Date(a.date) - new Date(b.date)
));
format.sort((aDate, bDate) => {
if (differenceInDays(bDate.date, aDate.date) === 1) {
rangeArray.push(aDate, bDate);
}
finalArray .push(bDate);
});
Мне кажется, что это не самый эффективный способ решения моей проблемы.Мне интересно, есть ли лучший способ перебрать массив и поместить все объекты с последовательными датами в их собственный массив.
Любая помощь будет оценена.
РЕДАКТИРОВАТЬ: Яиспользуя date-fns для расчета разницы в днях:
https://date -fns.org / v1.29.0 / docs / diffInInays