我正在编写合约桥牌的评分脚本,只是为了咯咯笑。我将游戏存储为对象:
var game = {
team1 : { player1 : prompt("Team 1, first player: "), player2 : prompt("Team 1, second player:") },
team2 : { player1 : prompt("Team 2, first player: "), player2 : prompt("Team 2, second player:") },
}
function deal(bid){
console.log("The bid was " + bid);
game.hand = {"bid" : bid , "made" : undefined};
score();
}
因此,我想做的比这更好的事情是保留本次比赛的历史记录。我想用伪代码做这样的事情:
game.(hand + (hand.length+1))
或者类似的东西;基本上自动递增对象内的某个对象。我不太确定数组会在这里,但也许?我愿意接受建议/改进我的代码。
PS - 我更喜欢在 javascript 中执行此操作,而不是 jQuery、Prototype、Dojo、MooTools... 或任何其他库。谢谢!
编辑
抱歉,让我澄清一下:玩 3 手左右后的结果将是这样的对象:
var game = {
team1 : { player1 : prompt("Team 1, first player: "), player2 : prompt("Team 1, second player:") },
team2 : { player1 : prompt("Team 2, first player: "), player2 : prompt("Team 2, second player:") },
hand1 : { bid : 2 , made : 2 } ,
hand2 : { bid : 1 , made : 4 } ,
hand3 : { bid : 3 , made : 1 } ,
hand4 : { bid : 2 , //and made hasn't been set yet because we're mid-hand
}
最佳答案
根据您的伪代码,您可以执行以下操作:
game[hand + (hand.length+1)]
即game["prop"] == game.prop
- 两者都提供对同一属性的访问。
关于javascript - 动态添加成员到 javascript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2384938/