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

时间:2013-11-27 10:26:44

标签: javascript local-storage

我已经有了这段代码来列出游戏中所有已保存的玩家:

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

我得到了对象[object],它是一个对象的集合。在控制台中,我可以看到它们的属性和值,但是:

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

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

2 个答案:

答案 0 :(得分:1)

如果您的问题是[object Object]框中出现alert()

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

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

答案 1 :(得分:1)

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