Javascript 存储分配给不同用户的项目
假设我有一副10张牌。它们都是不同的,但假设5个是“100买入,50卖出”,另外5个是“200买入,100卖出” 然后,我有两个人(作为“个人”对象)购买这些卡(从牌堆中随机挑选),并在某个时候出售这些卡 我曾考虑将每张卡存储为一个对象,其中包含Javascript 存储分配给不同用户的项目,javascript,oop,Javascript,Oop,假设我有一副10张牌。它们都是不同的,但假设5个是“100买入,50卖出”,另外5个是“200买入,100卖出” 然后,我有两个人(作为“个人”对象)购买这些卡(从牌堆中随机挑选),并在某个时候出售这些卡 我曾考虑将每张卡存储为一个对象,其中包含id、name、buyPrice、sellPrice和owner,现在我想知道计算一个人拥有哪些卡的最佳方法是什么 1) “person”对象中的一个数组,其中包含他们拥有的卡的ID,当他们购买/出售该卡时,会将其添加/从数组中删除 2) 当一个人可以出
id
、name
、buyPrice
、sellPrice
和owner
,现在我想知道计算一个人拥有哪些卡的最佳方法是什么
1) “person”对象中的一个数组,其中包含他们拥有的卡的ID,当他们购买/出售该卡时,会将其添加/从数组中删除
2) 当一个人可以出售一张卡时,循环卡片对象并创建一张该人拥有的卡片的列表
3) 我没有想到的一种更简单、更简单的方法是另一种选择: 3) 每个卡片对象都有一个卡片所有者的
personId
字段(或person
引用)(如果没有所有者,则为空)。当卡片售出时,您只需更新PersonId即可
这与1)相反,如果你需要列出一个人拥有的所有卡片,我认为这两种方法在努力程度上是相等的,但是你应该考虑到你的所有其他要求来评估这种努力
希望这有帮助,干杯。因为JavaScript对象是通过引用传递的,所以没有理由不将实际的卡片对象存储在person对象中
Person.prototype.addCard = function (card) {
this.cards.push(card);
};
Person.prototype.removeCard = function (card) {
this.cards.splice( this.cards.indexOf(card), 1 );
};
因此,如果person1
从person2
购买card1
,您将从一个移动到另一个:
person1.addCard(card1);
person2.removeCard(card1);