Моя проблема заключается в том, что я пытаюсь заполнить объект массивами данных, но некоторые из массивов либо не будут правильно установлены, либо исчезнут.Javascript: исчезающие свойства объекта
Я попытался найти ответ, но я ничего не нашел, и я также пробовал отлаживать, но не смог разобраться в сути проблемы.
Функция это происходит в обычай JQuery расширение я работаю, на котором принимает объект в качестве входных данных, содержащий массив «ч»:
Hour = {
time: datetime,
comment: string
};
код выглядит следующим образом:
(function ($) {
$.fn.calendar = function(data){
var times={};
var debugging = {};
var x = 0;
data.hours.forEach(function(hour){
//Transform hours.time into 1-7 day of the week
//and 0-23 hour of the day
//Save comments and timestamp to times[day][hour];
var entry = new Date(hour.time);
var clockedTime = entry.toTimeString().match(/^([0-9]{2}:[0-9]{2}:[0-9]{2})/)[0];
times[entry.getDay()] = {};
times[entry.getDay()][entry.getHours()] = [clockedTime, hour.comment];
debugging[x] = [entry.getDay(), entry.getHours()];
x++;
});
console.log(times);
console.log(debugging);
return this.html(times);
};
}(jQuery));
Консоль вывода:
Object {1: Object, 2: Object, 3: Object, 4: Object}
Object {0: Array[2], 1: Array[2], 2: Array[2], 3: Array[2], 4: Array[2], 5: Array[2]}
Таким образом, с выходом, я знаю, что цикл по д ata шесть раз (поскольку объект отладки содержит шесть элементов), но объект времени имеет только четыре записи.
Любые помощь или указатели будут очень признательны.
Я предполагаю, что у вас есть дубликаты для 'entry.getDay()', которые переписывают существующие свойства. –
Это было бы так. У меня есть два предмета за тот же день, но появляется только первое. Разве не возможно иметь, например, отдельные времена [2] [1] и времена [2] [2] записи? –
Правильно, невозможно, иначе как бы вы ссылались на то или другое? –