Итак, я хочу перебирать объект JSON, хранящийся в моем локальном хранилище браузера. В основном объект JSON выглядит и добавляется так:Javascript итерация по локальному хранилищу Объект JSON (Vanilla Javascript)
if (localStorage.getItem("playerHighscoreObject") == undefined) {
playerHighscoreList = [
{'name': "Ben", 'score': 40},
{'name': "Joe", 'score': 44},
{'name': "Anna", 'score': 51},
{'name': "Mitch", 'score': 59},
{'name': "Abdi", 'score': 63}
];
localStorage.setItem("playerHighscoreObject", JSON.stringify(playerHighscoreList));
}
else {
playerHighscoreList = localStorage.getItem("playerHighscoreObject");
}
Затем я хочу итерацию над объектом и проверить на «забить» ключ и сравнить значение потенциальной новой записи.
function saveScore() {
var key = "score";
console.log(playerHighscoreList);
for (key in playerHighscoreList) {
if (playerHighscoreList.hasOwnProperty(key)) {
var val = playerHighscoreList[key];
console.log(val);
}
}
}
Однако, когда я это делаю, я получаю 135 не определено в журнале. Несмотря на то, что я печатаю объект JSON, и он отображается, как и должно быть
[{"name":"Ben","score":40},{"name":"Joe","score":44},{"name":"Anna","score":51},{"name":"Mitch","score":59},{"name":"Abdi","score":63}]
Что я здесь делаю неправильно?
EDIT: Предлагаемый дубликат использует jQuery для решения проблемы. Я не хочу использовать jQuery, но ванильный javascript, как описано в названии.
Dupe? http://stackoverflow.com/questions/3138564/looping-through-localstorage-in-html5-and-javascript – httpNick
Есть ли 'JSON.parse'? – Dimava
@ Dimava: Ооо, я полностью пропустил это. 'Stringify' есть, но' parse' отсутствует. –