我正在尝试使用以下代码在localstorage中存储数组:
var tempval = [];
tempval['key'] = 1;
localStorage.setItem("Message", JSON.stringify(tempval));
但在localstorage中它只显示[]
那么如何存储它以及我在哪里做错了?
答案 0 :(得分:0)
这是你的代码: -
var tempval ={};
tempval.key = 1;
localStorage.setItem("Message", JSON.stringify(tempval));
答案 1 :(得分:0)
JavaScript不支持带有命名索引的数组.Arrays总是在javascript中使用编号索引。如果您想使用命名索引,请使用对象。
使用数组(编号索引)
var tempval = [];
tempval[0] = 1;
使用对象(命名索引)
var tempval = {};
tempval['key'] = 1;
使用var tempval ={};
代替var tempval = [];
答案 2 :(得分:0)
所以你的问题对我来说并不是那么清楚,但我试图给你一个在本地存储中存储多维数组的通用解决方案,
var a= [[1,2,3],["hello","world"]]; // multi dimentional array
console.log(a);
var b = JSON.stringify(a); // converting the array into a string
console.log(b);
localStorage.setItem("TestData",b); // storing the string in localstorage
var c= JSON.parse(localStorage.getItem("TestData")); //accessing the data from localstorgae.
console.log(c);
答案 3 :(得分:0)
此问题已经回答(重复):
https://stackoverflow.com/a/3357615/10387837
简短的回答是localStorage.setItem
仅支持将字符串用作参数。为了与数组一起使用,建议使用JSON.stringify()
传递参数,使用JSON.parse()
传递数组。