向javascript对象动态添加成员

向javascript对象动态添加成员,javascript,object,Javascript,Object,我正在为合同桥牌做一个得分脚本,只是为了好玩。我将游戏存储为一个对象: 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 playe

我正在为合同桥牌做一个得分脚本,只是为了好玩。我将游戏存储为一个对象:

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))
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

}
或者类似的东西;基本上自动递增对象中的某个对象。我不太确定数组是否会出现在这里,但也许?我愿意接受建议/改进我的代码

PS-我更喜欢使用javascript,而不是jQuery、Prototype、Dojo、MooTools。。。或任何其他图书馆。谢谢

编辑

对不起,让我澄清一下:打3手左右的结果将是这样一个对象:

game.(hand + (hand.length+1))
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)]

i、 e.
game[“prop”]==game.prop
-两者都提供对同一属性的访问。

给定您的伪代码,您可以执行以下操作:

 game[hand + (hand.length+1)]

i、 e.
game[“prop”]==game.prop
-两者都提供对相同属性的访问。

我明白了,但我需要做类似的事情。我会投票赞成这个答案,但我不被允许

似乎最快的方法是像访问散列/关联数组一样访问对象

var d = {};
var z = "hand";
d[z+1] = "foo";

console.log(d.hand1);
在firebug中进行测试。看起来效果不错。 JS似乎没有php等价物来强制解析表达式周围的大括号中的变量

d->{z+1} = "foo";  // can't find anything like this in JS.

希望这能有所帮助,

老问题,我明白了,但我需要做一些类似的事情。我会投票赞成这个答案,但我不被允许

似乎最快的方法是像访问散列/关联数组一样访问对象

var d = {};
var z = "hand";
d[z+1] = "foo";

console.log(d.hand1);
在firebug中进行测试。看起来效果不错。 JS似乎没有php等价物来强制解析表达式周围的大括号中的变量

d->{z+1} = "foo";  // can't find anything like this in JS.

希望这有帮助,

不,你是对的,把它放在方括号中是得到评估的方法,或者将它保存为“foo”,然后“obj[foo]=…”如果它超过几个字符就使用它。不,你是对的,把它放在方括号中是得到评估的方法,或者将它保存为“foo”,然后是“obj[foo]=…'如果超过几个字符,则使用它。