Я пытаюсь вычислить данные для графика выживаемости для курса.Курс имеет даты начала и окончания, количество упражнений и фактические даты начала и окончания обучения.У меня есть данные JSON с сервера с данными курса.Я обрабатываю это.Прежде всего, я вычисляю totalExcercisesCount
, а затем подсчитываю количество дней, в течение которых студент заканчивает курс.В конце концов я получаю следующий объект данных:
const chartDataObj = {
idealBurn: [],
actualBurn: [],
idealIncrement: 0,
totalExcercisesCount: 12,
totalExercisesDoneCount: 4,
timeLine: {
courseFrom: "2018-09-10",
courseTo: "2019-06-21",
start: "2018-09-11",
finish: "2018-10-01",
totalDays: 20,
}
}
После того, как я строю идеальную линию, и здесь возникает первая проблема.Я пытаюсь сделать следующее:
chartDataObj.idealIncrement = Math.floor(
chartDataObj.timeLine.totalDays / chartDataObj.totalExcercisesCount
);
for (i = 0; i <= chartDataObj.timeLine.totalDays - 1; i++) {
chartDataObj.idealBurn.push(chartDataObj.idealIncrement * (i + 1));
}
chartDataObj.idealBurn.reverse();
Проблема в том, что если количество дней намного больше, чем упражнений, у меня неправильный идеальный ожог.
Мне нужно выполнить 12 упражнений, но на второй день это выглядит как 19. Что я здесь не так делаю?
А потом мне нужнозаполните фактические данные записи.Но проблема в том, как заполнить его согласно датам выполнения упражнения и показать его на графике?Я имею в виду, что в моем последнем объекте dataObject у меня есть только totalExercisesDoneCount
, но в начальном JSON у меня есть информация о датах завершения упражнений.Должен ли я сгруппировать их по датам или нет?
У меня также есть codepen , подготовленный с диаграммой и всем кодом.Любая помощь будет оценена.Thanx