Javascript:从 sessionStorage 中检索所有密钥?
Posted
技术标签:
【中文标题】Javascript:从 sessionStorage 中检索所有密钥?【英文标题】:Javascript: Retrieve all keys from sessionStorage? 【发布时间】:2017-06-09 03:26:58 【问题描述】:是否无法检索我存储在 sessionStorage(或 localStorage)中的所有键/对象?
如果我已经完成了sessionStorage.name = 'John'
和sessionStorage.city = 'New York'
,是否有办法获得显示键name
和city
的列表?
【问题讨论】:
这可能有用***.com/questions/8419354/get-html5-localstorage-keys 【参考方案1】:获取显示键 name 和 city
的列表
使用Object.keys()
函数:
sessionStorage.name = 'John';
sessionStorage.city = 'New York';
console.log(Object.keys(sessionStorage));
【讨论】:
【参考方案2】:您可以使用Object.keys()
和reduce()
:
var obj = Object.keys(localStorage).reduce(function(obj, key)
obj[key] = localStorage.getItem(key);
return obj
, );
console.log(obj)
【讨论】:
【参考方案3】:如果您不需要支持 IE9 或更低版本(或者乐于使用 Polyfills,则可以使用 Object.keys() 和 Array. prototype.map() 的组合,如下所示:
Object.keys(localStorage).map(function(c,i,a)
// do whatever
);
Object.keys()
返回传递给它的对象的可枚举值的数组,另外还有一个好处是不枚举其原型链中的任何属性。
然后您可以使用Array.prototype.map()
对这个返回的数组运行操作。
【讨论】:
【参考方案4】:通过这个你可以将本地存储中的所有数据分配到一个对象中:
let storage =
Object.keys(localStorage).forEach((key) =>
storage[key] = localStorage.getItem(key);
);
【讨论】:
【参考方案5】:您可以这样获取键及其值。
for (const [key, value] of Object.entries(sessionStorage))
console.log(key, value);
;
这应该在 IE11 之外工作
【讨论】:
以上是关于Javascript:从 sessionStorage 中检索所有密钥?的主要内容,如果未能解决你的问题,请参考以下文章
从 Javascript、Ajax、IE 访问二进制数据:可以从 Javascript(不是 VB)读取 responseBody 吗?