Javascript循环不能与本地存储一起工作
Javascript Loop not working with local storage
我有加载变量并将其转换为数字的代码,我可以用这些做数学,并可以在页面上显示它们,但我有函数,在加载之前工作,使用这些变量自动添加1到变量。我有一个循环来运行这个自动加法。然而,在添加了加载之后,循环似乎不工作了。
if(typeof(Storage)!=="undefined") {
var hotdogs = parseInt(localStorage.getItem('hotdogs'), 10);
var bread = parseInt(localStorage.getItem('bread'), 10);
var hotdog = parseInt(localStorage.getItem('hotdog'), 10);
var sauce = parseInt(localStorage.getItem('sauce'), 10);
var bakeries = parseInt(localStorage.getItem('bakeries'), 10);
var butchers = parseInt(localStorage.getItem('butchers'), 10);
var sauceries = parseInt(localStorage.getItem('sauceries'), 10);
}
else {
var hotdogs = 0;
var bread = 0;
var hotdog = 0;
var sauce = 0;
var bakeries = 0;
var butchers = 0;
var sauceries = 0;
}
function buyBakery(){
var bakeryCost = Math.floor(20 * Math.pow(1.05,bakeries));
if(hotdogs >= bakeryCost){
bakeries = bakeries + 1;
hotdogs = hotdogs - bakeryCost;
document.getElementById('bakeries').innerHTML = bakeries;
document.getElementById('hotdogs').innerHTML = hotdogs;
};
var nextCostBakery = Math.floor(20 * Math.pow(1.05,bakeries));
document.getElementById('bakerycost').innerHTML = nextCostBakery;
};
(function loop(timer) {
setTimeout(function() {
breadClick(bakeries);
hotdogClick(butchers);
sauceClick(sauceries);
customers(custom);
loop(1000);
}, timer)
})(1000)
buyBakery()
方法。其次,即使定义了"存储",您正在查找的项目也可能不在其中。在这种情况下,它将返回null
,而parseInt()
将转换为NaN
(非数字)
还要确保在循环中调用的其他函数存在并且没有抛出任何错误。使用web控制台。
你可能想要考虑保存值回到localStorage
(如果你还没有这样做),所以你可以以后得到它。在我的例子中,我已经添加了一个函数来做到这一点。
试试这样的东西。
function loadFromLS(item) {
var ret = 0;
if (typeof (Storage) === 'undefined') {
return ret;
}
if (null === (ret = localStorage.getItem(item))) {
ret = 0;
}
return parseInt(ret, 10);
}
function saveToLS(item, val) {
if (typeof (Storage) === 'undefined') {
return;
}
localStorage[item] = val;
}
var hotdogs = loadFromLS('hotdogs');
var bread = loadFromLS('bread');
var hotdog = loadFromLS('hotdog');
var sauce = loadFromLS('sauce');
var bakeries = loadFromLS('bakeries');
var butchers = loadFromLS('butchers');
var sauceries = loadFromLS('sauceries');
function buyBakery() {
var bakeryCost = Math.floor(20 * Math.pow(1.05, bakeries));
if (hotdogs <= bakeryCost) {
bakeries = bakeries + 1;
hotdogs = hotdogs - bakeryCost;
document.getElementById('bakeries') .innerHTML = bakeries;
document.getElementById('hotdogs').innerHTML = hotdogs;
};
var nextCostBakery = Math.floor(20 * Math.pow(1.05, bakeries));
document.getElementById('bakerycost') .innerHTML = nextCostBakery;
};
(function loop(timer) {
setTimeout(function () {
breadClick(bakeries);
hotdogClick(butchers);
sauceClick(sauceries);
customers(custom);
loop(1000);
}, timer)
}) (1000)
相关文章:
- 存储数据的最佳方式是什么,以便与jquery一起使用
- 将可重复使用的组件与ReactJs和Flux一起用于多个存储
- 是否可以将Windows VisualSVN存储库与MAC客户端一起使用
- 将Dojo网格与内存存储一起使用
- 与 API 一起使用时,将 Date 对象存储在数据库中的最佳实践是什么
- 我可以将parseInt与会话存储一起使用吗?
- 与“click”事件一起存储的jQuery元素未按要求工作
- 将 .show() 更改为要与本地存储一起保存的变量
- 将 Json 文件存储在 AngularJS 变量中,以便与“ng-repeat”一起使用
- 如何显示用户使用文本区域的日期和时间(单击时与本地存储一起保存)
- JavaScript 存储在一起相似的值
- 如何将额外的数据与Tag it标记一起存储
- 将换行符和字符串一起存储在变量中
- 如何将css代码存储在与Javascript一起使用的php变量中
- 本地存储无法与for循环一起工作
- 如何将ng repeat与存储在localStorage中的JSON文件一起使用
- 从概念上讲,我如何编写通量存储以避免将不相关的数据混合在一起
- 如何将AngularJS的$resource调用存储在一个数组中,然后一起执行
- Javascript循环不能与本地存储一起工作
- Javascript存储一个数字,以便以后与web存储一起使用