2014-01-08 20 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); 
相關問題