Ich habe folgende verwendet, um eine Dummy-Highscore-Tabelle zu erstellen, wenn wenn localscores nicht im lokalen Speicher vorhanden ist:Javascript lokale Speicher herausfinden, ob existiert
if (localStorage.getItem("localScores") === null) {
highscores = [
{user: "Player 1", score: 100},
{user: "Player 2", score: 90},
{user: "Player 3", score: 80},
{user: "Player 4", score: 70},
{user: "Player 5", score: 60},
{user: "Player 6", score: 50},
{user: "Player 7", score: 40},
{user: "Player 8", score: 30},
{user: "Player 9", score: 20},
{user: "Player 10", score: 10}
];
localStorage['localScores']=JSON.stringify(highscores);
console.log("doesn't exist")
}
else{
highscores = JSON.parse(localStorage['localScores']);
console.log("exists")
}
ich immer 10 Werte erhalten will, so ich habe dies eine Partitur hinzuzufügen, wobei Benutzername und insgesamt ist der Name eingegeben und erzielte Score:
highscores.push({user: username, score: total});
highscores.sort(function(a,b){ return b.score - a.score});
delete highscores[10];
localStorage['localScores']=JSON.stringify(highscores);
console.log(highscores);
Alles ist gut, bis ich das Spiel und die erste Funktion läuft neu zu laden, so scheint es, null Wert auf das Highscores Array hinzuzufügen. Also, wenn ich 5 zusätzliche Punkte addiere, habe ich 3 Nullwerte im Array?
[Objekt, Objekt, Objekt, Objekt, Objekt, Objekt, Objekt, Objekt, Objekt, Objekt, null, null, null, null, null]
Dies führt mich entweder die Linie zu glauben, wo ich bewerten wenn die localscores vorhanden ist falsch (localStorage.getItem ("localScores") === null)
Oder wo ich das 11. Element in dem Feld löschen ist falsch Highscores löschen [10];
Oder es gibt ein anderes Problem, das ich nicht sehe, wenn jemand weiß, was vor sich geht, würde ich etwas Hilfe schätzen.
scheint es zu sein, dank – mao
Diese das 'highscores' zum Trimmen auch funktionieren würden:' if (highscores.length> 10) {highscores.length = 10;} 'und das nicht machen würde, eine Kopie des Arrays wie '.slice()' tut. – jfriend00