getItem包含字符串的localstorage

时间:2012-08-07 18:24:28

标签: javascript html5 local-storage

我的localstorage中有多个键:task-1,task-2, task-3 ...我正在寻找一种方法来获取以字符串“tasks-”开头的键的总数,以便将它放在我的循环而不是{{1 }}

事实上,如果我有另一个使用localstorage的应用程序,我的循环会返回一个与localStorage中所有键相对应的长度,包括那些不在相关应用程序中的键。

localStorage.length

非常感谢你的帮助

3 个答案:

答案 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;