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',是否有办法获得显示键namecity 的列表?

【问题讨论】:

这可能有用***.com/questions/8419354/get-html5-localstorage-keys 【参考方案1】:

获取显示键 namecity

的列表

使用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 吗?

JavaScript教程-从入门到精通

javascript 从JavaScript数组中获取随机物品

JavaScript Javascript从数组中删除项目

从 JavaScript 到 TypeScript

javascript JavaScript:从特定范围获取随机数