Помогите, пожалуйста, разобраться в ситуации.
Ниже написан код, которые добавляет объекты в
localStorage при условии, что в самом хранилище уже что-то есть.
Если там ничего нет, - в коде это строка
if (myStorage.length == 0) {};
(тестирую, очистив предварительно
localStorage), - то консоль выдаёт ошибку
Uncaught SyntaxError: Unexpected end of input.
Интересует:
1) Почему строка с переменной
var events = localStorage.getItem('events') || [];
не определяет пустой массив, если в localStorage ещё нет 'events'?
2) Как создать и прописать условие для
if (myStorage.length == 0) {}; чтобы там создавался в localStorage пустой массив, если нет ещё сохранённых данных.
Оставил в коде специально пустое место после фигурных скобок.
Пробовал:
1) var myStorage = [];
2) var myStorage = myStorage.push({Date: "", Event: "", Participants: "", Description: ""});
localStorage.setItem('myStorage', JSON.stringify(myStorage));
P.S. Важная часть начинается с var events...
if (tdAttr) {
tdAttr.style.backgroundColor = 'green';
tdAttr.getElementsByTagName("span")[0].innerHTML = fastAddEvent.value;
var fastDate = tdAttr.getAttribute('data-cell');
var fastEvent = fastAddEvent.value;
var events = localStorage.getItem('events') || [];
var addFastEvent = function() {
var myStorage = JSON.parse(events);
if (myStorage.length == 0) {
}
else if (myStorage.length > 0) {
for (var i = 0; i < myStorage.length; i++) {
if (myStorage[i].Date == fastDate) {
myStorage[i].Event = fastEvent;
myStorage[i].Participants = "";
myStorage[i].Description = "";
};
break;
};
};
localStorage.setItem('events', JSON.stringify(myStorage));
};
addFastEvent();
};