有没有办法在一次调用中检索本地存储中的所有数据?
不使用特定键(getItem('key')。
我喜欢加载所有数据,然后检查它们是否有特定的前缀。
答案 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))