我的localstorage中有多个键:task-1,task-2, task-3 ...
我正在寻找一种方法来获取以字符串“tasks-”开头的键的总数,以便将它放在我的循环而不是{{1 }}
事实上,如果我有另一个使用localstorage的应用程序,我的循环会返回一个与localStorage中所有键相对应的长度,包括那些不在相关应用程序中的键。
localStorage.length
非常感谢你的帮助
答案 0 :(得分:1)
如果您控制这些项的创建,将它们存储在对象中并使用JSON在对象和字符串之间进行转换会更有意义:
var tasksObject = {
task1: ...,
task2: ...,
...
};
window.localStorage.setItem('tasks', JSON.stringify(tasksObject));
... later ...
var tasks = JSON.parse(window.localStorage.getItem('tasks'));
for (var task in tasks) {
// do stuff
}
答案 1 :(得分:0)
应该切换这些陈述。遍历所有内容,看看每个项目是否符合您的条件。
var count = 0;
for(i = 0; i < localStorage.length; i++){
if(localStorage.getItem("task-"+i) != null){
console.log(i)
count++;
}
}
// count contains number of items beginning with task
答案 2 :(得分:0)
var i, e, tasks=[];
for (i=0; (e=localStorage["task-"+i])!==undefined; i++) {
console.log(e);
tasks.push(e);
}
怎么样
localStorage['num-tasks'] = tasks.length;