Функция карты была объяснена несколько раз, и я понимаю это. Для тех, кто этого не знает: моя функция получает параметр карты, который может быть числом или строкой. Затем я увеличиваю или уменьшаю глобальную переменную count согласно значению карты 2,3,4,5,6, 7,8,9 сохраняет ее на 0, а 10, J, Q, K, A уменьшает ее. Затем моя функция возвращает строку с текущим счетчиком и строку «Bet», если счет положительный, или «Hold», если отрицательный.
Так что я понимаю, как выполняется эта функция, и FreeCodeCamp принял мое решение, поскольку технически оно соответствует их условиям. Но есть вопрос относительно этой функции:
var count = 0;
function cc(card) {
if (card >= 2 && card <= 6) {
count++;
} else if (card >= 7 && card <= 9) {
count += 0;
} else {
count--;
}
if (count <= 0) {
return count + " Hold";
} else {
return count + " Bet";
}
}
console.log(cc(2));
console.log(cc(3));
console.log(cc(7));
console.log(cc('K'));
console.log(cc('A'));
Как я вижу, первое условие довольно просто и легко определить, так же как и в случае if. В третьем случае участвуют как числа, так и строки. Не значит ли это, что когда я помещу ЛЮБУЮ строку в cc, она будет уменьшаться? Как все, что не между 2 и 6, или 7 и 9, будет автоматически уменьшаться? Даже если пользователь вводит что-то, что не является карточкой или не является значением из списка?
Я понимаю, что есть список предопределенных значений и имен карт, но, тем не менее, есть ли лучший способ обусловить мое утверждение, чтобы убедиться, что мое условие будет выполняться ТОЛЬКО, если карта имеет значение 10, J, Q, K или А, а не какое-либо другое значение?