在localstorage中存储键值数组

时间:2016-06-20 10:36:07

标签: javascript jquery local-storage

我正在尝试使用以下代码在localstorage中存储数组:

var tempval = [];
tempval['key'] = 1;                    
localStorage.setItem("Message", JSON.stringify(tempval));

但在localstorage中它只显示[]

那么如何存储它以及我在哪里做错了?

4 个答案:

答案 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);

Here is the code running in Jsbin

答案 3 :(得分:0)

此问题已经回答(重复):

https://stackoverflow.com/a/3357615/10387837

简短的回答是localStorage.setItem仅支持将字符串用作参数。为了与数组一起使用,建议使用JSON.stringify()传递参数,使用JSON.parse()传递数组。