У вас две основные проблемы.
Во-первых, ваш счет должен начинаться с нуля каждый раз, когда вы звоните cc()
. Поскольку вы объявили count
вне функции, ее значения сохраняются между вызовами cc()
. Объявляя его внутри функции, он инициализируется нулем, прежде чем он начинает считать значения карты.
(Если вы не хотите продолжать предыдущий подсчет, в этом случае вы должны оставить его объявленным вне функции)
Во-вторых, ваша функция принимает только один аргумент. Вы должны заставить его принять список аргументов. Это можно сделать просто с помощью оператора распространения ...
. Затем вам нужно провести l oop через каждое значение карты и выполнить подсчет.
function cc(...cards) { // accept a list of card values as arguments.
let count = 0
for (const card of cards) { // loop through all card values.
switch (card) {
case 2:
case 3:
case 4:
case 5:
case 6:
count += 1
break
case 7:
case 8:
case 9:
count += 0
break
case 10:
case 'J':
case 'Q':
case 'K':
case 'A':
count -= 1
break
}
}
if (count > 0) {
return `${count} Bet`
}
return `${count} Hold`
}
cc(2, 3, 4, 5, 6) // returns 5 Bet
console.log(cc(2, 3, 4, 5, 6)) // returns 5 Bet
console.log(cc(2, 3, 4, 5, 6)) // returns 5 Bet