例如,我有以下代码:
localStorage["screenshots"] = new Array();
localStorage["screenshots"]["a"] = 9;
alert(localStorage["screenshots"]["a"]);
Arr = new Array();
Arr["screenshots"] = new Array();
Arr["screenshots"]["a"] = 9;
alert(Arr["screenshots"]["a"]);
(我在Windows Vista 32位上使用Google Chrome v9.0.597.107)
但只有第二部分有效(alert()的输出是“a”)! 相反,第一个警报输出“未定义”!
有什么问题?
感谢。
答案 0 :(得分:16)
localStorage将值存储为字符串,因此您需要在路上序列化对象并在出路时对其进行反序列化。例如:
var data = {'A': 9};
localStorage['screenshots'] = JSON.stringify(data);
// Later/elsewhere:
var data = JSON.parse(localStorage['screenshots']);
// 9
console.log(data.A);
答案 1 :(得分:2)
localStorage
对象只能存储字符串。要存储其他类型的数据,请使用它们将它们转换为字符串,并在检索时将其转换回来。在大多数情况下,您可能希望使用JSON来执行此操作。
答案 2 :(得分:1)