我有以下用於創建一個虛擬的高評分表,如果,如果localscores在本地存儲中不存在:JavaScript的本地存儲找出是否存在
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")
}
我總是想保持10分,所以我有這個加分,其中的用戶名和總的名義進入和得分達到:
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);
一切都很好,直到我重新加載遊戲和第一功能運行時,它似乎爲空值添加到高分陣列。所以如果我添加5個額外的分數,我會在數組中有3個空值?
[對象,對象,對象,對象,對象,對象,對象,對象,對象,對象,NULL,NULL,NULL,NULL,NULL]
這使我相信,無論是在哪裏評估線如果存在localscores是錯誤 (localStorage.getItem(「localScores」)===空)
或者其中I在陣列中刪除第11元件是錯誤 刪除高分[10];
或者還有其他一些問題,我沒有看到,如果有人知道發生了什麼我非常感謝一些幫助。
好像是這樣,謝謝 – mao 2012-03-31 00:33:27
這也適用於修剪'highscores':'if(highscores.length> 10){highscores.length = 10;}',這不會產生像.slice()這樣的數組副本。 – jfriend00 2012-03-31 00:39:36