存储分配给不同用户的项目

时间:2014-01-08 03:05:20

标签: javascript oop

假设我有一副10张牌。它们都会有所不同,但让我们说5是“100买,卖50”,其他5是“买200,卖100”

然后我有两个人(作为“人”物品)将购买卡片(从卡片中随机挑选),并在某些时候出售卡片。

我在考虑将每张卡片存储为idnamebuyPricesellPriceowner的对象,现在我想知道是什么是计算一个人拥有哪些卡片的最佳方式?

1)“人”中的数组包含他们拥有的卡的ID,当他们购买/出售卡时,它是从数组中添加/删除的

2)当某人可以出售卡片时,循环通过卡片对象并创建一个人员拥有的列表。

3)一种更简单,更简单的方法,我没有想过

2 个答案:

答案 0 :(得分:1)

由于JavaScript对象是通过引用传递的,因此没有理由不将实际的卡对象存储在人的对象中。

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

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

因此,如果person1card1购买person2,您就会将其从一个移到另一个:

person1.addCard(card1);
person2.removeCard(card1);

答案 1 :(得分:0)

另一种选择是:

3)每个卡片对象都有一张卡片所有者的personId字段(或person引用)(如果没有所有者,则为null)。出售该卡时,您只需更新PersonId

与1)相反,我认为如果你需要列出一个人拥有的所有牌,两者​​都是相同的,但你应该考虑所有其他要求来评估这些努力

希望这有帮助,干杯。