在localstorage中推进数字字符串

时间:2017-06-09 02:18:58

标签: javascript jquery local-storage

使用一个小任务跟踪器小程序,它使用localstorage来存储任务,并保留一个运行选项卡,显示迄今为止已创建的任务数。后者是我的问题。

这是我正在运行的,问题包含在变量“taskTracker”和“advanceTask”中。

function saveTask() {
        var task = $("#task").val();
        var taskDate = $("#taskDate").val();
        if (newUser == null) {
            var taskNumber = 0;
            localStorage.setItem("taskTracker", "0");
            localStorage.setItem("newUser", "no");
        }
        else {
            var taskNumber = localStorage.getItem("taskTracker");
        }
        var advanceTask = taskNumber + 1;
        localStorage.setItem('task' + taskNumber, task);
        localStorage.setItem('task' + taskNumber + 'date', taskDate);
        localStorage.setItem("taskTracker", advanceTask);
        console.log(advanceTask);
        displayTasks();
}

如果你看一下“advanceTask”变量,我的目的是每次调用这个函数时提前存储在“taskTracker”中的数值。但是,我所得到的只是每次附加值的附加“1”。

思考? < 3

1 个答案:

答案 0 :(得分:1)

string + numbernumber + number之间存在差异。您当前的解决方案类似于下面的stringPlusOne功能。您需要将字符串转换为数字(使用parseInt是一种方式),然后进行数学运算,如下面的stringPlusOne2函数

function stringPlusOne(str) {
  console.log(str + 1);
}

function stringPlusOne2(str) {
  console.log(parseInt(str, 10) + 1);
}

stringPlusOne("2");
stringPlusOne2("2");