我已经有了这段代码来列出游戏中所有已保存的玩家:
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语法访问它们?
答案 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]);