为什么关联数组在localStorage [""]中不起作用?

Com*_*eek 12 javascript arrays html5 associative-array google-chrome

例如,我有以下代码:

  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"]);
Run Code Online (Sandbox Code Playgroud)

(我在Windows Vista 32位上使用谷歌浏览器v9.0.597.107)

但只有第二部分有效(alert()的输出是"a")!第一个警报输出对比"未定义"!

问题是什么?

谢谢.

Dav*_*ard 16

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

var data = {'A': 9};

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

// Later/elsewhere:

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

// 9
console.log(data.A);
Run Code Online (Sandbox Code Playgroud)

  • 它在所有实现HTML5 localStorage的浏览器中都可用. (5认同)