假设我有一副10张牌。它们都会有所不同,但让我们说5是“100买,卖50”,其他5是“买200,卖100”
然后我有两个人(作为“人”物品)将购买卡片(从卡片中随机挑选),并在某些时候出售卡片。
我在考虑将每张卡片存储为id
,name
,buyPrice
,sellPrice
和owner
的对象,现在我想知道是什么是计算一个人拥有哪些卡片的最佳方式?
1)“人”中的数组包含他们拥有的卡的ID,当他们购买/出售卡时,它是从数组中添加/删除的
2)当某人可以出售卡片时,循环通过卡片对象并创建一个人员拥有的列表。
3)一种更简单,更简单的方法,我没有想过
答案 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 );
};
因此,如果person1
从card1
购买person2
,您就会将其从一个移到另一个:
person1.addCard(card1);
person2.removeCard(card1);
答案 1 :(得分:0)
另一种选择是:
3)每个卡片对象都有一张卡片所有者的personId
字段(或person
引用)(如果没有所有者,则为null)。出售该卡时,您只需更新PersonId
与1)相反,我认为如果你需要列出一个人拥有的所有牌,两者都是相同的,但你应该考虑所有其他要求来评估这些努力
希望这有帮助,干杯。