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

Stringify not working when storing named array in localstorage

我已经命名了要存储在本地存储中的数组。

例如:

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 只能存储字符串,因此字符串化对我来说很有意义,但显然它不起作用,因此必须有其他方法。

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

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

相同
testla.aaaa = 'foo';

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

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

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