2017-12-05 3 views
0

Ich bin fertig mit einem Spiel für die Schule und es funktioniert gut. Aber ich muss die Punktzahl von jedem Spiel im lokalen Speicher speichern. Ich kann die individuelle Punktzahl präsentieren, aber wenn ich ein Array mit Punkten haben möchte, sind die Werte 'undefiniert'. Nicht sicher, wo ich es falsch verstehe, weil der lokale Speicher die Daten zeigt, obwohl zweimal über ... Jede Chance, die ich einen Hinweis von Ihnen bekommen könnte?Highscore Liste erscheint als undefined

Zu Beginn des Spiels möchte ich die Noten anzeigen, wenn es welche gibt. Ich tue dies mit:

let score = document.querySelector('#score') 
let scores = [] 
if (scores.length > 0) { 
    let score = document.querySelector('#score') 
    let extract = JSON.parse(window.localStorage.getItem('scores')) 
    let highscore = document.createTextNode(extract.Nickname + ' - ' + 
    extract.Score) 
    score.appendChild(highscore) 
} 

Wenn der Spieler mit dem Spiel fertig und bekam alle richtigen Antworten, die ich diesen Code verwenden, um die Aufgabe zu drücken:

window.scoreNickname = document.getElementById('name').value 
window.scoreTime = seconds + 's ' + totalTimeSum % 1000 + 'ms' 
let scoreData = { 
    Nickname: window.scoreNickname, 
    Score: window.scoreTime 
} 
scores.push(scoreData) 
window.localStorage.setItem('scores', JSON.stringify(scores)) 
let extract = JSON.parse(window.localStorage.getItem('scores')) 
let highscore = document.createTextNode(extract.Nickname + ' - ' + 
extract.Score) 
score.appendChild(highscore) 

Aber alles, was ich bekommen uns nicht definiert. In lokalen Speicher habe ich diese Informationen:

scores: [{"Nickname":"Adam","Score":"18s768ms"}, 
{"Nickname":"Adam","Score":"18s768ms"} 
+2

'lassen Partituren JSON.parse müssen = [] wenn (scores.length> 0) {'wird niemals den bedingten Block ausführen – Bergi

+1

' extract' wäre ein Array, genau wie 'scores'. Es hat keine Eigenschaft '.Nickname' – Bergi

Antwort

-1

Versuchen mit:

let extract = window.localStorage.getItem('scores'); 

Ich glaube, Sie nicht ein JSON-Objekt

+2

Ja, Sie tun. LocalStorage speichert Zeichenfolgen (in diesem Fall eine JSON-Zeichenfolge), keine Objekte. – Bergi