使用一个小任务跟踪器小程序,它使用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
答案 0 :(得分:1)
string
+ number
和number
+ number
之间存在差异。您当前的解决方案类似于下面的stringPlusOne
功能。您需要将字符串转换为数字(使用parseInt
是一种方式),然后进行数学运算,如下面的stringPlusOne2
函数
function stringPlusOne(str) {
console.log(str + 1);
}
function stringPlusOne2(str) {
console.log(parseInt(str, 10) + 1);
}
stringPlusOne("2");
stringPlusOne2("2");