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

Javascript: Retrieve all keys from sessionStorage?

是否无法检索我存储在 sessionStorage(或 localStorage)中的所有 keys/objects?

如果我完成了 sessionStorage.name = 'John'sessionStorage.city = 'New York',难道没有办法获得显示键 namecity 的列表吗?

如果您不需要支持 IE9 或更低版本(或者乐于使用 Polyfills,那么您可以使用 Object.keys() and Array. prototype.map() 的组合,如下所示:

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

Object.keys() returns 一个 array 传递给它的对象的可枚举值的额外好处是不枚举它的任何属性原型链.

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

to get a list that shows the keys name and city

使用Object.keys()函数:

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

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

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

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

console.log(obj)

这样你就可以将本地存储中的所有数据分配到一个对象中:

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

您可以获得键及其值。

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

除 IE11 外,这应该有效