Ваша проблема в том, что вы неправильно инициализируете свои значения.Например, в случае bookmarks
ваш код предполагает, что localStorage
имеет значение с этим ключом.Однако это не обязательно так.Вам нужно иметь значение по умолчанию для bookmarks
.Здесь может быть полезен помощник function
:
function getBookmarks() {
var bookmarks = localStorage.getItem("bookmarks");
if (!bookmarks) bookmarks = [];
return bookmarks;
}
, а затем замените все вхождения от localStorage.getItem("bookmarks")
до getBookMarks()
в вашем коде, кроме одного в функции выше.Обратите внимание и на другие инициализации.
РЕДАКТИРОВАТЬ
Если вы хотите проанализировать JSON внутри функции, вы можете сделать это так:
function getBookmarks() {
var bookmarks = localStorage.getItem("bookmarks");
if (!bookmarks) return [];
return JSON.parse(bookmarks);
}