javascript - 如何从 localStorage 中检索多个键和值
问题描述
我将多个数组存储到本地存储。
firstArray = [];
secArray = [];
var firsteobj = {class: class, subject: subject, school: school, area: area, zipcode: zipcode};
firstArray.push(firstobj);
localStorage.firstRecord = JSON.stringify(firstArray);
var secobj = {student: student, grade: grade, age: age};
secArray.push(secobj);
localStorage.secondRecord = JSON.stringify(secArray);
我正在通过函数从本地存储中检索并下载文件。
function DownloadRec() {
var a = {};
for (var i = 0; i < localStorage.length; i++) {
var k = localStorage.key(i);
var v = localStorage.getItem(k);
a[k] = v;
//alert(a[k]);
}
let dataUrl = 'data:application/json,' + encodeURIComponent(a[k]);
let exportFileDefaultName = 'test.json';
let linkElement = document.createElement('a');
linkElement.setAttribute('href', dataUrl);
linkElement.setAttribute('download', exportFileDefaultName);
linkElement.click();
}
我可以在浏览器中看到 key(firstRecord,secRocord) 和对应的值。我只能检索第一个键,即 localstorage.firstRecord.... 我也想检索第二个键和值,即 localstorage.secondRecord。
你能建议我吗?
解决方案
只需像这样创建一个对象数组:
arr=[
obj1:'',
.
.
.
obj2:''
]
并使用 localStorage.setItem('objName') 将其保存在浏览器中,现在您可以检索整个数组。我认为这是您情况下的最佳方法。
推荐阅读
- asp.net-mvc - 无法使用 dotnet add package 安装包
- java - 如何屏蔽 catalina.out 中的 System.out.println(CARD_NUMBER) 值
- c# - 我将如何在 C# windows 服务中实现没有计时器/线程的无限循环?
- python - 从元组 RDD 中删除空字符串
- spring-boot - 有没有办法将 Spark-cassandra 与 SpringBoot 2 集成?
- python - 在 python 中使用上传组件时下载依赖项时出错
- awk - 匹配两个文件中的值并替换选定列中的值
- iqueryable - FluentAssertions 比较两个 IQueryable
- asp.net-web-api - 如何在startup.cs的ConfigureServices方法中注入UserManager?
- javascript - Slicebox 没有显示错误,但屏幕上仍然没有任何内容