在localstorage中存储命名数组时Stringify不起作用

时间:2017-05-13 22:09:33

标签: javascript arrays json local-storage stringify

我已将我希望存储的数组命名为本地存储。

例如:

testla=[];

testla['aaaa']='a';

然而,当我尝试:

console.log(JSON.stringify(testla));

输出:

[]

使用时更加奇怪:

testla=[];

testla[10]='a';

我得到这样的奇怪结果:

[null,null,null,null,null,null,null,null,null,null,"a"]

根据文档,localstorage只能存储字符串,因此字符串化对我来说很有意义,但显然它不起作用,所以必须有其他方法来实现这一点。

2 个答案:

答案 0 :(得分:1)

JSON.stringify()忽略数组的非数组属性。但您可以使用对象:var testla = {};

答案 1 :(得分:1)

在第一个示例中,您只是向对象添加属性调用aaa。与

相同
testla.aaaa = 'foo';

您可以使用对象创建关联数组:

var myArr = {};
myArr['aaaa'] = 'bar';

没有命名数组,js中的数组只能用数字索引。