繁体   English   中英

Javascript数学函数没有加起来

[英]Javascript math function not adding up

我的网站上有一个部分,可让您赚取数字积分并将其用于游戏和其他东西,但很难使用。 我正在重做它以利用localStorage ,并使整个系统更易于使用。 不过我遇到了一个问题。 我创建了一个使用 javascript 添加点的函数,我创建了一个按钮,可以暂时让我轻松运行它。 当我单击按钮时,它应该在当前总分 0 分的基础上加 10 分,最终总分是 10 分,但是它将 0 和 10 作为字符串相加,得到 010 分。 这是通过按下按钮运行的功能:

function addPoints(number) {
    var pointsExist = localStorage.getItem("points");
    var newPointsTotal = pointsExist + arguments[0];
    localStorage.setItem("points", newPointsTotal);
    location.reload();
}

这是检查当前点数并显示它的函数:

function check() {
    var points = localStorage.getItem("points");
    if (!points) {
        var points = +0;
        localStorage.setItem("points", points);
    }
    document.getElementById("points").innerHTML = "Hi, " + username + "! You have " + points + " points.";
}

如果你觉得它有帮助,我在我的网站上创建了一个隐藏目录,里面有页面,如果我没有很好地解释,你可以点击这个链接去那里自己尝试一下。

您的点在localStorage中保存为字符串。 你应该做一个数字。

function addPoints(number) {
    var pointsExist = localStorage.getItem("points");
    var newPointsTotal = Number(pointsExist) + arguments[0];
    localStorage.setItem("points", newPointsTotal);
    location.reload();
}

在 localStorage 中,所有值都是字符串化的,因此 pointsExist 以字符串形式给出。 您必须在添加之前将其更改为数字

 function addPoints(number) { var pointsExist = localStorage.getItem("points"); var newPointsTotal = parseInt(pointsExist) + arguments[0]; localStorage.setItem("points", newPointsTotal); location.reload(); }

您需要将localStorage的 JSON 解析为整数:

function addPoints(number) {
    var pointsExist = parseInt(localStorage.getItem("points"));
    var newPointsTotal = pointsExist + number;
    localStorage.setItem("points", newPointsTotal);
    location.reload();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM