JavaScript本地存储:请求所有数据?

时间:2018-03-22 08:47:20

标签: javascript

有没有办法在一次调用中检索本地存储中的所有数据?

不使用特定键(getItem('key')。

我喜欢加载所有数据,然后检查它们是否有特定的前缀。

3 个答案:

答案 0 :(得分:2)

Object.getOwnPropertyNames(localStorage)
      .filter(key => localStorage[key].startsWith("e"))
      .map(key => localStorage[key]);

答案 1 :(得分:1)

这将为您提供所有密钥

var local = localStorage;
for (var key in local) {
  console.log(key);
}

您也可以使用Object.keys()

Object.keys()方法返回给定对象自己的可枚举属性的数组,其顺序与for ... in循环提供的顺序相同(不同之处在于for-in循环枚举了原型链也是如此。

console.log(Object.keys(localStorage))

答案 2 :(得分:1)

如果您想使用自定义前缀获取某些staty项目,您可以先检索所有localStorage个密钥,对其进行过滤,然后检索数据:

<强> ES5

var prefix = 'your-prefix:'

var filteredStorage = Object.keys(localStorage)
  .filter(function(key) {
    return key.startsWith(prefix)
  })
  .map(function(key){
    return localStorage.getItem(key)
  })

<强> ES2015

let prefix = 'your-prefix:'  
let filteredStorage = Object.keys(localStorage)
  .filter(key => key.startsWith(prefix))
  .map(key => localStorage.getItem(key))