例如,我有以下代码:

  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"]);

(我在32位Windows Vista上使用Google Chrome v9.0.597.107)

但是只有第二部分有效(alert()的输出为“a”)!
相反,第一个警报输出为“未定义”!

问题是什么?

谢谢。

最佳答案

localStorage将值存储为字符串,因此您需要在导入时对JSON序列化对象,并在导出时反序列化它们。例如:

var data = {'A': 9};

localStorage['screenshots'] = JSON.stringify(data);

// Later/elsewhere:

var data = JSON.parse(localStorage['screenshots']);

// 9
console.log(data.A);

10-06 05:10