以下是游戏对象的错误编码示例。游戏对象假设包含类似于玩家对象的数组。很明显这里的目的是什么,但到目前为止,我弄错了。 我试过换掉带括号的球员括号,或用冒号替换等号。
这里有什么问题?
var game = {
gameName : 'Name of Game Instance',
players : {
player1 : {
name:"Tom",
score:0
},
player2 : {
name:"Bob",
score:0
},
player3 : {
name:"Ziggy",
score:0
}
}
}
答案 0 :(得分:1)
我相信你希望players
成为一个对象数组:
var game = {
gameName : 'Name of Game Instance',
players : [
{
name:"Tom",
score:0
},
{
name:"Bob",
score:0
},
{
name:"Ziggy",
score:0
}
]
};
答案 1 :(得分:0)
在您的代码中,game.players
是一个对象,因此您没有数组方法,例如forEach
和.length
。
要使它成为数组,您不能简单地将{ ... }
与[ ... ]
交换,因为数组不接受键值对,它们只接受值,而它们的键隐含地是它们的索引。为了能够访问每个播放器,您可以使数组成为对象数组,以便在game.players
上进行数组操作,因为它们是数组。
var game = {
gameName : 'Name of Game Instance',
players : [
{
name:"Tom",
score:0
},
{
name:"Bob",
score:0
},
{
name:"Ziggy",
score:0
}
]
}
如果您希望将其保留为对象,可以将其键以数组形式写入以下内容:
Object.keys(game.players).forEach(function(key) {
var currentPlayer = game.players[key]
})
答案 2 :(得分:0)
var game = {
gameName : 'Name of Game Instance',
players : [
{
name: "Tom",
score: 0
},
{
name: "Bob",
score: 0
},
{
name: "Ziggy",
score: 0
}
]
}
答案 3 :(得分:-1)
将玩家作为一系列对象。像这样:
var game = {
gameName : 'Name of Game Instance',
players : [
{
name: "Tom",
score: 0
},
{
name: "Bob",
score: 0
},
{
name: "Ziggy",
score: 0
}
]
}