У меня есть массив с именем plot_data
. В этом у меня есть два свойства объекта: дата x
и значение y
. Даты на самом деле являются прошлыми датами. В этом массиве несколько дат отсутствуют где-то в нескольких местах. Итак, какие бы даты ни были пропущены, я хочу добавить их в массив.
массив plot_data такой
0: {x: Fri Apr 06 2018 22:30:00 GMT-0500 (Central Daylight Time), y: 93.9}
1: {x: Sat Apr 07 2018 09:00:00 GMT-0500 (Central Daylight Time), y: 69.3}
2: {x: Tue Apr 10 2018 10:00:00 GMT-0500 (Central Daylight Time), y: 71.2}
3: {x: Wed Apr 11 2018 11:00:00 GMT-0500 (Central Daylight Time), y: 67.2}
4: {x: Sat Apr 14 2018 10:00:00 GMT-0500 (Central Daylight Time), y: 71.2}
5: {x: Sun Apr 15 2018 11:00:00 GMT-0500 (Central Daylight Time), y: 67.2}
Я хочу, чтобы вывод массива был таким.
0: {x: Fri Apr 06 2018 22:30:00 GMT-0500 (Central Daylight Time), y: 93.9}
1: {x: Sat Apr 07 2018 09:00:00 GMT-0500 (Central Daylight Time), y: 69.3}
2: {x: Sun Apr 08 2018 09:00:00 GMT-0500 (Central Daylight Time), y: null}
3: {x: Mon Apr 09 2018 09:00:00 GMT-0500 (Central Daylight Time), y: null}
4: {x: Tue Jun 10 2018 10:00:00 GMT-0500 (Central Daylight Time), y: 71.2}
5: {x: Wed Jun 11 2018 11:00:00 GMT-0500 (Central Daylight Time), y: 67.2}
6: {x: Thu Jun 12 2018 10:00:00 GMT-0500 (Central Daylight Time), y: null}
7: {x: Fri Jun 13 2018 11:00:00 GMT-0500 (Central Daylight Time), y: null}
8: {x: Sat Jun 14 2018 10:00:00 GMT-0500 (Central Daylight Time), y: 71.2}
9: {x: Sun Jun 15 2018 11:00:00 GMT-0500 (Central Daylight Time), y: 67.2}
Я не понимаю, как это сделать, так как мы должны учитывать количество дат в месяце. Пожалуйста помоги.
Да, я ожидаю запись в день, мы можем жестко закодировать время в любое время.
Вы можете получить следующую дату, просто добавив 24 часа, тогда вам не придется заботиться о дате в месяце.
Я удалил часовой пояс, вы можете установить его в соответствии с вашими требованиями.
let arr = [{x: 'Fri Apr 06 2018 22:30:00', y: 93.9},
{x: 'Sat Apr 07 2018 09:00:00', y: 69.3},
{x: 'Tue Apr 10 2018 10:00:00', y: 71.2},
{x: 'Wed Apr 11 2018 11:00:00', y: 67.2},
{x: 'Sat Apr 14 2018 10:00:00', y: 71.2},
{x: 'Sun Apr 15 2018 11:00:00', y: 67.2}]
let i=0;
while(i < arr.length-1) {
let nextday = new Date(new Date(arr[i].x).getTime() + 24 * 60 * 60 * 1000);
if (nextday.getDay() != (new Date(arr[i+1].x)).getDay()) {
arr.splice(i+1, 0, {x: nextday.toString(), y: null});
};
i++
}
console.info(arr)
Это решение, похоже, не учитывает первый элемент.
Записи данных, показанные в вашем примере массива
plot_data
, записываются в разное время дня. Как решить, отсутствует запись или нет. Вы просто ожидаете записи в день? Пожалуйста, измените свой вопрос. Также будет здорово, если вы пересмотрите свои примеры, чтобы иметь правильный код Javascript.