Задача такова:
Пользователь запрашивает данные с
25.06.2019 по
4.07.2019 к примеру
С сервера могут придти не все данные, пришли к примеру с
30.06.2019 по
2.07.2019
Моя задача найти недостающие даты, поместить их в интервалы и запросить по интервалам
примерно должно выглядеть так
intervals = [
{
start: '25.06.2019',
end: '29.06.2019'
},
{
start: '3.07.2019',
end: '4.07.2017'
}
]
Это массив с этими недостающими интервалами
import moment from 'moment';
export default function (start, end, obj) {
const arr = [];
let interval = null;
const newStart = moment(start, 'DD.MM.YYYY').format('YYYY-MM-DD').valueOf();
const newEnd = moment(end, 'DD.MM.YYYY').format('YYYY-MM-DD').valueOf();
console.log(!moment(newStart).isSame(newEnd));
for (let i = newStart; !moment(newStart).isSame(newEnd); i = moment(i, 'YYYY-MM-DD').add(1, 'd').format('YYYY-MM-DD')); {
let y = 0;
const newDate = moment(obj[y].date, 'DD.MM.YYYY').format('YYYY-MM-DD').valueOf();
const bool = moment(newDate).isSame(newEnd);
if (bool) {
if (interval) {
interval.end = i;
arr.push(interval);
interval = null;
}
} else if (!interval) {
interval.start = i;
}
y += 1;
}
return arr;
}
Вот мой код, но он не работает, там бесконечный цикл, помогите с алгоритмом