我只是想知道如何在localStorage
.
我试图用一个简单的 JavaScript 循环来检索值
for (var i=1; i <= localStorage.length; i++) {
alert(localStorage.getItem(i))
}
但它只有在键是渐进式数字时才有效,从 1 开始。
如何获取所有密钥,以显示所有可用数据?
我只是想知道如何在localStorage
.
我试图用一个简单的 JavaScript 循环来检索值
for (var i=1; i <= localStorage.length; i++) {
alert(localStorage.getItem(i))
}
但它只有在键是渐进式数字时才有效,从 1 开始。
如何获取所有密钥,以显示所有可用数据?
for (var key in localStorage){
console.log(key)
}
编辑:这个答案得到了很多赞成,所以我想这是一个常见的问题。我觉得我欠任何可能偶然发现我的答案并认为它是“正确的”的人,因为它被接受进行更新。事实是,上面的例子并不是真正做到这一点的正确方法。最好和最安全的方法是这样做:
for ( var i = 0, len = localStorage.length; i < len; ++i ) {
console.log( localStorage.getItem( localStorage.key( i ) ) );
}
在 ES2017 中,您可以使用:
Object.entries(localStorage)
我喜欢像这样创建一个容易可见的对象。
Object.keys(localStorage).reduce(function(obj, str) {
obj[str] = localStorage.getItem(str);
return obj
}, {});
我也用饼干做类似的事情。
document.cookie.split(';').reduce(function(obj, str){
var s = str.split('=');
obj[s[0].trim()] = s[1];
return obj;
}, {});
function listAllItems(){
for (i=0; i<localStorage.length; i++)
{
key = localStorage.key(i);
alert(localStorage.getItem(key));
}
}
您可以使用该localStorage.key(index)
函数返回字符串表示,其中index
是您要检索的第 n 个对象。