我正在将多个数组存储到本地存储。
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);
我正在通过该函数从localstorage中检索并下载文件。
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。
你能建议我吗?
答案 0 :(得分:0)
设置/获取localStorage的正确方法如下:
const myValue = [{ thing: 'myValue' }]
const mySerializedValue = JSON.stringify(myValue)
localStorage.setItem('myKey', mySerializedValue)
localStorage.getItem('myKey')
此外,我注意到“类”被用作变量名。可能要重命名,因为“类”是许多编程语言(包括es6 javascript)中的关键字。
答案 1 :(得分:0)
只需创建一个像这样的对象数组:
arr=[
obj1:'',
.
.
.
obj2:''
]
并使用localStorage.setItem('objName')将其保存在浏览器中,现在您可以检索整个数组。我认为这是您的最佳方法。
答案 2 :(得分:0)
您可以使用以下命令将多个值存储在本地存储中。您还可以按照演示的JSON对象形式存储数据:
//Store Values:
localStorage.setItem('someValue','hello');
let user = {name: 'SomeName', email: 'someemail@gmail.com'};
localStorage.setItem('jsonValue',JSON.stringify(user));
//Retrieve the values from localstorage
let temp = localStorage.getItem('someValue'); //temp is hello
let tempJSONString = localStorage.getItem('jsonValue');
let tempJSON = JSON.parse(tempJSONString );
//tempJSON.name is SomeName