我完成了一场学校游戏并且运作良好。但我需要将每个游戏的得分存储在本地存储中。我可以提供个人得分,但如果我想要一个有分数的数组,则值是“未定义的”#。不知道我错在哪里,因为本地存储显示数据,虽然两次... 我有机会得到你的暗示吗?
在游戏开始时我想显示分数,如果有的话。我这样做:
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"}
答案 0 :(得分:-1)
尝试:
let extract = window.localStorage.getItem('scores');
我认为您不需要JSON.parse JSON对象