如何修改代码以同时获取符合条件的localStorage条目的键名与值
如何修改代码以同时获取符合条件的localStorage条目的键名与值
嘿,这事儿超简单,我来给你捋明白~
你原来的代码已经成功过滤出了包含doinclude的localStorage键名,但在映射环节只提取了解析后的值,所以最终todos数组里只有值、没有对应的键名。要同时拿到键名和对应的值,只需要调整map方法的返回值,把键名也一起封装进对象里就行。
修改后的代码如下:
const keys = Object.keys(localStorage).filter(key => key.includes('doinclude')); const todos = keys.map(key => ({ name: key, value: JSON.parse(localStorage.getItem(key)) }));
简单说明:
- 我们在
map的回调函数里,返回了一个新对象:用name字段存储localStorage的键名,value字段存储解析后对应的值 - 最终
todos数组里的每一个元素都会是{ name: '符合条件的键名', value: '解析后的值' }这样的结构,后续使用时就能轻松获取到键名和对应的值啦
举个直观的例子:如果你的localStorage里有doinclude_todo1和doinclude_todo2两个条目,那todos的结构大概会是这样:
[ { name: 'doinclude_todo1', value: { /* 解析后的值对象 */ } }, { name: 'doinclude_todo2', value: { /* 解析后的值对象 */ } } ]
备注:内容来源于stack exchange,提问作者Cymro
相关产品推荐
相关产品推荐

