jquery - Jquery 从 LocalStorage 检索具有相同起始模式的多个键
问题描述
考虑我正在使用以下方式存储 5 个数据localStorage.setItem()
:
{“abc1”:“是”,“abc2”:“是”,“abc3”:“是”,“uvw”:“否”,“xyz”:“否”}
对于检索,我们可以使用localStorage.getItem()
. 但是在这里我需要检索键名以字符串“abc”开头的所有键值对,即检索键"abc1"
,"abc2"
和"abc3"
。
这是我尝试过的:
var a = {},
keys = Object.keys(localStorage),
l = keys.length;
while (l--) {
a[keys[l]] = localStorage.getItem(keys[l]);
if(a[keys[l]].startsWith('abc') == "true") {
alert(a[keys[l]]);
}
}
请帮我。
解决方案
你有两个问题。
startsWith()
返回一个布尔值,而不是一个字符串。- 您正在检查值是否以开头
abc
,而不是键。
var a = {};
Object.entries(localStorage).forEach(([key, value]) => {
if (key.startsWith("abc")) {
a[key] = value;
}
});
console.log(a);
推荐阅读
- android - 添加新指纹时不抛出 KeyPermanentlyInvalidatedException
- docker - Dockerized Nginx 在分离模式下立即停止
- debugging - 为什么 LLDB 在调试时打印错误的值?
- android - 无法解析符号上下文
- jquery - 更改按钮单击的输入值
- curl - 在 alpine 中安装 curl 7.66.0-r0 时出错:“curl_multi_poll: symbol not found”
- javascript - 使用 mongoos 插入许多在 mongoDB 中不起作用
- spring - Spring Boot 句柄类型不匹配错误
- actions-on-google - 使用 Dialogflow 自定义操作链接帐户
- c++ - C++:当顺序真的很重要时,如何保证在项目中包含头文件的顺序