所以,我想我可以循环通过localStorage像一个普通的对象,因为它有一个长度。我如何循环通过这?
localStorage.setItem(1,'Lorem'); localStorage.setItem(2,'Ipsum'); localStorage.setItem(3,'Dolor');
如果我做一个localStorage.length它返回3这是正确的。所以我假设一个for循环将工作。
我在想像:
for (x in localStorage){ $('body').append(localStorage[x]); }
但没有效果。有任何想法吗?
另一个想法,我是一个像
localStorage.setItem(1,'Lorem|Ipsum|Dolor') var split_list = localStorage.getItem(1).split('|');
在其中for … in在工作。
解决方法
您可以使用
key
方法。 localStorage.key(index)返回indexth键(顺序是实现定义的,但是常数,直到添加或删除键)。
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));