高分列表未定义

时间:2017-12-05 14:43:10

标签: javascript node.js dom local-storage

我完成了一场学校游戏并且运作良好。但我需要将每个游戏的得分存储在本地存储中。我可以提供个人得分,但如果我想要一个有分数的数组,则值是“未定义的”#。不知道我错在哪里,因为本地存储显示数据,虽然两次... 我有机会得到你的暗示吗?

在游戏开始时我想显示分数,如果有的话。我这样做:

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)
}

当玩家完成游戏并获得所有正确答案后,我使用此代码推送对象:

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)

但我得到的一切都是未定义的。在本地存储中,我有这样的信息:

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

1 个答案:

答案 0 :(得分:-1)

尝试:

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

我认为您不需要JSON.parse JSON对象