2014-01-08 19 views
0

假设我有一副10张牌。他们都会有所不同,但我们假设5是“买100,卖50”,其他5是“200买,100卖”保存分配给不同用户的项目

然后我有两个人(作为“人”对象)这将购买卡(从甲板上随机挑选),并在某些时候出售卡。

我想每个存储卡作为与idnamebuyPricesellPriceowner对象的,现在我想知道什么是计算一个人拥有该卡的最佳方法?

1)中的“人” obects内的数组,其中包含的他们拥有该卡的ID,而当他们买/卖卡,它的添加/从阵列

移除2项)当在一个点一个人可以出售一张卡片,循环卡片对象并创建一个该人拥有的列表。

3),其余都没有想到

回答

0

另一选择将是更简单的,更简单的方法:所有者的

3)每个卡对象具有personId字段(或person参考)该卡(如果它没有拥有者,则为null)。当卡片出售时,您只需更新个人识别号码

这与1)相反,如果您需要列出某人拥有的所有卡片,我认为两者在努力上是等价的,但您应该考虑所有卡片其他要求

希望这有助于,干杯。

1

由于JavaScript对象是通过引用传递的,所以没有理由不将真实的卡对象存储在该对象的对象中。

Person.prototype.addCard = function (card) { 
    this.cards.push(card); 
}; 

Person.prototype.removeCard = function (card) { 
    this.cards.splice(this.cards.indexOf(card), 1); 
}; 

所以,如果从person1购买person2card1,你会从一个移动到另一个:

person1.addCard(card1); 
person2.removeCard(card1); 
相关问题