Javascript:从sessionStorage中检索所有密钥?

时间:2017-01-24 10:55:44

标签: javascript session local-storage session-storage

检索存储在sessionStorage(或localStorage)中的所有密钥/对象是不可能的?

如果我已完成sessionStorage.name = 'John'sessionStorage.city = 'New York',是否有办法获取显示密钥namecity的列表?

5 个答案:

答案 0 :(得分:3)

  

获取显示键名称城市

的列表

使用Object.keys()功能:

sessionStorage.name = 'John';
sessionStorage.city = 'New York';

console.log(Object.keys(sessionStorage));

答案 1 :(得分:0)

如果您不需要支持IE9或更少(或者很乐意使用Polyfill,那么您可以使用Object.keys()Array. prototype.map()的组合,如下所示:

Object.keys(localStorage).map(function(c,i,a){
  // do whatever
});

Object.keys()返回传递给它的对象的可枚举值的数组,其附加好处是不枚举其原型链中的任何属性。

然后,您可以使用Array.prototype.map()对此返回的数组执行操作。

答案 2 :(得分:0)

您可以使用Object.keys()reduce()

var obj = Object.keys(localStorage).reduce(function(obj, key) {
   obj[key] = localStorage.getItem(key);
   return obj
}, {});

console.log(obj)

答案 3 :(得分:0)

使用此方法,您可以将本地存储中的所有数据分配给一个对象:

let storage = {}
Object.keys(localStorage).forEach((key) => {
    storage[key] = localStorage.getItem(key);
});

答案 4 :(得分:0)

您可以像这样获取键和它们的值。

for (const [key, value] of Object.entries(sessionStorage)) {
    console.log({key, value});
};

这应该可以工作,除了 IE11