【问题标题】:Javascript: Retrieve all keys from sessionStorage?Javascript:从 sessionStorage 中检索所有密钥?
【发布时间】:2017-06-09 03:26:58
【问题描述】:

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

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

【问题讨论】:

标签: javascript session local-storage session-storage


【解决方案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 之外工作

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-02-27
            • 2011-01-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多