Javascript 如何增加或减少具有特定卡名的牌组中的卡数计数器?

Javascript 如何增加或减少具有特定卡名的牌组中的卡数计数器?,javascript,jquery,Javascript,Jquery,你好 我正在继续尝试为Cardfight创建一个甲板构建应用程序!!先锋 有一条规则,一副牌中同一张牌不能超过4张,一副牌中不能超过50张 我试图使它成为这样,我有一个计数器,当一张牌被添加到牌组中时计数器增加,当一张牌被移出牌组时计数器减少。但此计数器必须适用于从0开始的每一张卡,并且每次将具有特定名称的卡添加到牌组时,该计数器都会增加1 我有一个vanguard对象和数据库数组,在这里我可以轻松创建新的vanguard对象。我在Vanguard对象中有一个变量(this.cardLimit=

你好

我正在继续尝试为Cardfight创建一个甲板构建应用程序!!先锋

有一条规则,一副牌中同一张牌不能超过4张,一副牌中不能超过50张

我试图使它成为这样,我有一个计数器,当一张牌被添加到牌组中时计数器增加,当一张牌被移出牌组时计数器减少。但此计数器必须适用于从0开始的每一张卡,并且每次将具有特定名称的卡添加到牌组时,该计数器都会增加1

我有一个vanguard对象和数据库数组,在这里我可以轻松创建新的vanguard对象。我在Vanguard对象中有一个变量(
this.cardLimit=0
),它将为每一张新卡最初设置卡限制为0

然后,当一张新卡
[addToDeck]
添加到卡组中时,它将在数据库中为该特定卡增加一个计数器:
数据库[addToDeck].cardLimit++
,直到达到最大值4,之后此if语句将不起作用:

if (deck.length < 51 && database[addToDeck].cardLimit < 5)
HTML代码:

<!DOCTYPE html>
<html>
    <head>
        <link rel="stylesheet" type="text/css" href="style.css" />
        <script type = "text/javascript" src='script.js'>
        </script>
        <title></title>
    </head>
    <body>
     <form name="searchForm">
         <input type="text" id="search" placeholder="Enter Card Name" name="searchItem"/>
     </form>
     <div id="button">Search!</div>
     <div id="add">Add to Deck</div>
    <br/>
    <div id="output"></div>
    <div id="image"></div>
    <div id="save"></div>
    </body>
</html>

搜索!
添加到甲板

Fiddle:jsfiddle.net/8QR7q 由马利克提供


测试输入:“Alfred Early”、“CEO Amaterasu”、“龙之霸主”、“Asura Kaiser”或“骑士之王,Alfred”

如果你把这个问题简化为一个基本的例子来说明你所混淆的原则,那么这个问题会更容易理解。把它简化也可以帮助你首先了解问题所在,如果我输入4次“Asura Kaiser”作为输入,你可能会找到解决方案。这将使数据库[asura kaiser].cardLimit++运行4次,使其等于4。这意味着if语句将不再运行,并且您不能向牌组中添加更多的牌。现在,如果我点击cardList分区中的“Asura Kaiser”,并使其在分区中只有3个,计数器仍然是4。然后,即使div中只有三张牌,也不能再向牌组中添加任何同名的牌,因为此牌名的计数器没有减少。这就是为什么我的标题特别提到计数器。我知道问题是什么,但不知道如何解决它,所以我在这里发布一些见解。
deck
是一个数组,所以
deck[this]
不会找到任何东西,甚至
deck[this.innerText.toLowerCase()]
(我在意识到它是数组而不是对象之前尝试过的)。您必须手动搜索
牌组
数组,以查找要移除的卡的匹配项,或更改
牌组
的类型。
<!DOCTYPE html>
<html>
    <head>
        <link rel="stylesheet" type="text/css" href="style.css" />
        <script type = "text/javascript" src='script.js'>
        </script>
        <title></title>
    </head>
    <body>
     <form name="searchForm">
         <input type="text" id="search" placeholder="Enter Card Name" name="searchItem"/>
     </form>
     <div id="button">Search!</div>
     <div id="add">Add to Deck</div>
    <br/>
    <div id="output"></div>
    <div id="image"></div>
    <div id="save"></div>
    </body>
</html>