我的目标:通过循环删除以前使用的项目来清理本地存储for
。
通常,我有很多项目,比如:
order-1356666288243 => {"cartID":2713329701836,"productName"...
order-1356666288243 => {"cartID":2713329701836,"productName"...
当我检查总共有多少项目时,我得到正确的从零开始的数量:
console.log( localStorage.length );
即使我for loop
写出键和值以及console.log()
其他一些东西,一切都很好:
for(var i=0, len=localStorage.length; i<=len; i++) {
var key = localStorage.key(i);
var value = localStorage[key];
console.log(key + " => " + value);
if(key != '' && key != null){
console.log( key.indexOf('order-') );
console.log(i + '. Key: ', key);
if(key.indexOf('order-') != -1){
console.log('The key to be removed is: ', key.toString());
localStorage.removeItem(key.toString());
}
}
console.log(i + ': ' + len);
}
一切几乎都符合人们的预期。但是,当我运行脚本时,这一行只执行一次:
localStorage.removeItem(key);
或者
localStorage.removeItem(key.toString());
事实上,我必须运行整个脚本的次数与项目数一样多。因此,如果我有 3 个项目,我需要运行循环 3 次以摆脱每个项目。
我很困惑:我哪里做错了?所有的console.log()
东西都显示了 3 次(如果我有 3 个项目并运行for loop
一次)。出于绝望,我什至改成i < len
了i >= len
,但这也不能解决问题。
任何人?