JavaScript:从html5中的本地存储访问对象[Object]

JavaScript:从html5中的本地存储访问对象[Object],javascript,local-storage,Javascript,Local Storage,我有以下代码列出游戏中所有保存的玩家: function getAllPlayers(){ for (var i = 0; i <= playerCount; i++){ object[i] = JSON.parse(localStorage.getItem("savedData"+i)); console.log(object[i]); } } 我仍然无法访问这些属性。是否有一种方法将每个对象放入一个单独的变量中,以便我可以通过varName.property语法访问它们

我有以下代码列出游戏中所有保存的玩家:

function getAllPlayers(){
for (var i = 0; i <= playerCount; i++){
  object[i] = JSON.parse(localStorage.getItem("savedData"+i));
  console.log(object[i]);
   }
}

我仍然无法访问这些属性。是否有一种方法将每个对象放入一个单独的变量中,以便我可以通过varName.property语法访问它们?

如果您的问题是在
警报()框中获取
[object object]

alert(someObject)
调用传递的参数的本机
Object.toString()
方法,这就是您获得
[Object Object]
的原因


使用
JSON.stringify(someObject)
将您的对象转换为JSON字符串,或者实现您自己的方法从对象生成字符串。

问题在于
object
不是真正的对象这是对象的数组,您应该访问该数组中某个对象的属性

for (var i = 0; i < object.length; i++)
  for (var name in object[i]) {
    alert('"' + name + '"="' + object[i][name] + '"');
  }   

 //currently you have to read it like this
 for (var i = 0; i < object.length; i++){
   var singleObj = object[i][0];  // additional 0 index 
   for (var name in singleObj) {
    alert('"' + name + '"="' + singleObj[name] + '"');
  }   
  }

调用变量
object
可能不是最好的主意。这没有什么区别-在更改变量名称时仍然获得[object object]。使用“object”作为变量名称将有效。只要你不尝试使用“对象”。。。但是我真的不推荐它。编辑:它返回:key:0值:[object object]如何将对象放入
locaStorage
?我使用相同的方法将对象保存在本地存储中,即:localStorage.setItem(“savedData”+I,JSON.stringify([new Player(playerName)]);我认为从Json进行解析的效果正好相反。使用stringify可以正常显示对象,但我仍然无法通过点语法访问它的值。有没有办法做到这一点?我正在寻找类似的东西,但它确实输出“0”=“[object]”,而不是实际的属性。不幸的是。我也尝试了eval(),但也没有成功。您正在枚举整个数组,而不是数组中的单个对象,或者您的对象是数组,以尝试添加额外的索引,如
singleObj[0]
您正在使用
JSON.stringify([new Player(playerName)])将数组存储在数组中。
只需像
JSON.stringify那样存储即可(new Player(playerName))
您不需要这个额外的索引就可以从这个嵌套的数组中挖掘出真实的数据。上面的答案将其排序出来,而无需使用第二次迭代。我会检查它作为这个职位的正确答案。谢谢VitaliyG
for (var i = 0; i < object.length; i++)
  for (var name in object[i]) {
    alert('"' + name + '"="' + object[i][name] + '"');
  }   

 //currently you have to read it like this
 for (var i = 0; i < object.length; i++){
   var singleObj = object[i][0];  // additional 0 index 
   for (var name in singleObj) {
    alert('"' + name + '"="' + singleObj[name] + '"');
  }   
  }
console.log(object[i]);