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

JavaScript: Accessing Object [Object] from local storage in html5

本文关键字:Object 访问 存储 html5 JavaScript      更新时间:2023-10-27

我有这个代码来列出游戏中所有保存的玩家:

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

我得到object〔object〕,它是一组对象。在控制台中,我可以看到它们的属性和值,但有:

for (var name in object) {
  alert('"' + name + '"="' + object[name] + '"');
}

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

问题是因为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] + '"');
  }   
  }

就像你在这里使用

console.log(object[i]);

如果您的问题是在alert()框中获得[object Object]

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

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