所以,我想我可以像一个普通对象一样循环遍历localStorage,因为它有一个长度。我怎么才能遍历它呢?
localStorage.setItem(1,'Lorem');
localStorage.setItem(2,'Ipsum');
localStorage.setItem(3,'Dolor');
如果我执行localStorage.length
,它会返回3
,这是正确的。所以我假设for...in
循环可以工作。
我是这样想的:
for (x in localStorage){
console.log(localStorage[x]);
}
但是没有用。有什么想法吗?
我的另一个想法是
localStorage.setItem(1,'Lorem|Ipsum|Dolor')
var split_list = localStorage.getItem(1).split('|');
其中for...in
确实可以工作。
发布于 2010-06-29 15:13:38
您可以使用key
方法。localStorage.key(index)
返回index
th键(顺序由实现定义,但在添加或删除键之前保持不变)。
for (var i = 0; i < localStorage.length; i++){
$('body').append(localStorage.getItem(localStorage.key(i)));
}
如果顺序很重要,您可以存储一个JSON序列化数组:
localStorage.setItem("words", JSON.stringify(["Lorem", "Ipsum", "Dolor"]));
该规范草案声称,任何支持structured clone的对象都可以是值。但这似乎还没有得到支持。
编辑:要加载数组,请添加到数组中,然后存储:
var words = JSON.parse(localStorage.getItem("words"));
words.push("hello");
localStorage.setItem("words", JSON.stringify(words));
发布于 2016-05-29 16:48:11
最简单的方法是:
Object.keys(localStorage).forEach(function(key){
console.log(localStorage.getItem(key));
});
发布于 2013-05-04 15:36:09
这对我在Chrome中是有效的:
for(var key in localStorage) {
$('body').append(localStorage.getItem(key));
}
https://stackoverflow.com/questions/3138564
复制相似问题