Я работаю над сценарием подсчета очков для контрактного моста, просто для хихиканья. Я храню игру в качестве объекта:Динамическое добавление элементов в объект javascript
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 ... или в любой другой библиотеке. Благодаря!
EDIT
К сожалению, позвольте мне уточнить: Результат после игры 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
}
Нет, ты прав, поставив его в квадратные скобки так, чтобы получить его оценивали, или сохранить его как «Foo», то «OBJ [Foo] = .. . ', чтобы использовать его, если это несколько символов. –