首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在HTML5和JavaScript中遍历localStorage

在HTML5和JavaScript中遍历localStorage
EN

Stack Overflow用户
提问于 2010-06-29 15:09:34
回答 8查看 110.9K关注 0票数 110

所以,我想我可以像一个普通对象一样循环遍历localStorage,因为它有一个长度。我怎么才能遍历它呢?

代码语言:javascript
复制
localStorage.setItem(1,'Lorem');
localStorage.setItem(2,'Ipsum');
localStorage.setItem(3,'Dolor');

如果我执行localStorage.length,它会返回3,这是正确的。所以我假设for...in循环可以工作。

我是这样想的:

代码语言:javascript
复制
for (x in localStorage){
    console.log(localStorage[x]);
}

但是没有用。有什么想法吗?

我的另一个想法是

代码语言:javascript
复制
localStorage.setItem(1,'Lorem|Ipsum|Dolor')
var split_list = localStorage.getItem(1).split('|');

其中for...in确实可以工作。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2010-06-29 15:13:38

您可以使用key方法。localStorage.key(index)返回indexth键(顺序由实现定义,但在添加或删除键之前保持不变)。

代码语言:javascript
复制
for (var i = 0; i < localStorage.length; i++){
    $('body').append(localStorage.getItem(localStorage.key(i)));
}

如果顺序很重要,您可以存储一个JSON序列化数组:

代码语言:javascript
复制
localStorage.setItem("words", JSON.stringify(["Lorem", "Ipsum", "Dolor"]));

该规范草案声称,任何支持structured clone的对象都可以是值。但这似乎还没有得到支持。

编辑:要加载数组,请添加到数组中,然后存储:

代码语言:javascript
复制
var words = JSON.parse(localStorage.getItem("words"));
words.push("hello");
localStorage.setItem("words", JSON.stringify(words));
票数 161
EN

Stack Overflow用户

发布于 2016-05-29 16:48:11

最简单的方法是:

代码语言:javascript
复制
Object.keys(localStorage).forEach(function(key){
   console.log(localStorage.getItem(key));
});
票数 48
EN

Stack Overflow用户

发布于 2013-05-04 15:36:09

这对我在Chrome中是有效的:

代码语言:javascript
复制
for(var key in localStorage) {
  $('body').append(localStorage.getItem(key));
}
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3138564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档