【问题标题】:Storing items assigned to different users存储分配给不同用户的项目
【发布时间】:2014-01-08 03:05:20
【问题描述】:

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

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

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

1) “人”对象中的一个数组,其中包含他们拥有的卡片的 ID,当他们购买/出售卡片时,它会从数组中添加/删除

2) 当一个人可以出售一张卡片时,循环遍历卡片对象并创建该人拥有的卡片的列表。

3) 一种我没有想到的更简单、更简单的方法

【问题讨论】:

    标签: javascript oop


    【解决方案1】:

    另一种选择是:

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

    这与 1) 相反,如果您需要列出一个人拥有的所有卡片,我认为两者在努力上是相同的,但您应该考虑所有其他要求来评估这种努力

    希望这会有所帮助,干杯。

    【讨论】:

      【解决方案2】:

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

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

      因此,如果 person1person2 购买 card1,您会将其从一个转移到另一个:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-11-07
        • 2012-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-21
        • 1970-01-01
        相关资源
        最近更新 更多