@jKEeY

Алгоритм по нахождению недостающих дней?

Задача такова:
Пользователь запрашивает данные с 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;
}

Вот мой код, но он не работает, там бесконечный цикл, помогите с алгоритмом
  • Вопрос задан
  • 123 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы