Ich Elemente in der localstorage wie folgt aus (mit Strict-Modus) zu speichern:Javascript Localstorage Null Bug
localStorage.setItem(String(index), JSON.stringify([name, score]));
Dann schrieb ich eine Methode zu überprüfen, ob eine neue Partitur größer als die Geretteten ist:
// Returns index where to place the score and return -1 if no new highscore
function isHighScore(score) {
console.log("called");
for (var i = 0; i < 3; i++) {
if (localStorage.getItem(String(i)) == null) {
return i; // No highscore yet at this position => new Highscore
}
else{
var indexObject = JSON.parse(localStorage.getItem(String(i)));
console.log(indexObject);
if(indexObject[1] < score){ // Checking if new score is higher than currently at this index
return i; // Returning index if new highscore
}
}
}
return -1; // checked all entries no new highscore
}
Aber ich bekomme diese folgende Ausgabe (nach Beispiel mit name = "name" Speichern und Score = 0):
called
["name", 0]
null
Uncaught TypeError: Cannot read property
1
of null
Wie kann das passieren? Ich überprüfe bereits, ob der Wert null
ist, also wie kann dies die erste passieren, wenn die Prüfung localStorage.getItem(String(i)) == null)
?
Können Sie die Frage mit einem [mcve] aktualisieren? (Leider muss es eine nicht ausführbare Datei sein, da Stack Snippets keinen lokalen Speicher zulässt, obwohl Sie ein lauffähiges jsFiddle erstellen und darauf verlinken können ** vorausgesetzt ** Sie enthalten auch den gesamten Code in der Frage.) –
@TJCrowder ok Ich werde dies –
für das nächste Mal tun. Keine Notwendigkeit in diesem Fall, wie es passiert ist! :-) –