在本地存储中添加高分

时间:2015-03-31 13:36:13

标签: javascript html5 local-storage

我想在游戏中添加高分。现在我有这个:

var score = 0;
var highscore = 0;

得分变量有效,但每当我得到点数总共60分时,它表示使用console.log(highscore)检查时得分仍为零。

我有这个来存储高分:

if (score > localStorage.getItem("highscore")) {
  localStorage.setItem("highscore", score);
}

这不能正常工作,但也不会出现任何错误。

5 个答案:

答案 0 :(得分:1)

除了parseInt之外,您还需要首先在localStorage设置初始值,因为如果未设置,localStorage.getItem("highscore",10)不会将10作为默认值返回

var score = 0;
var highscore = 0;
localStorage.setItem("highscore",0);

因为当您检查时

if (score > parseInt(localStorage.getItem("highscore"))) {
  localStorage.setItem("highscore", score);
}

如果尚未设置项目,localStorage.getItem("highscore")将返回null。或者您也可以这样做:

var storagedHighScore = localStorage.getItem("highscore");
if (storagedHighScore  || score > parseInt(storagedHighScore)) {
  localStorage.setItem("highscore", score);
}

答案 1 :(得分:1)

试试这个:

var score = 0;
var highscore = localStorage.getItem("highscore");

if(highscore !== null){
    if (score > highscore) {
        localStorage.setItem("highscore", score);      
    }
}
else{
    localStorage.setItem("highscore", score);
}

答案 2 :(得分:0)

您需要使用

从localStorage检索值
highscore = +localStorage.getItem("highscore")

或一些等效代码。 localStorage中的项目不会跟踪具有相同名称的全局变量。

答案 3 :(得分:0)

我刚刚在http://jsfiddle.net/unb8yLj3/审核了您的代码,但我无法找到您在哪个部分增加分数,因此当这部分代码运行得分为0且 localStorage.getItem(“highscore”)是10因此它没有设置高分。

if (score > localStorage.getItem("highscore")) {
                localStorage.setItem("highscore", score);

            }

  }

是否有其他js文件可以提高分数?

答案 4 :(得分:-1)

if (score > parseInt(localStorage.getItem('highscore'), 10)) {
  localStorage.setItem('highscore', score);
}

在比较之前转换为int。它的字符串