, чтобы сохранить свой прогресс
29 сент. 2022 г., 9:51

Обсуждение задания "Counting Cards"

Не много забежать вперед. Почему не сработал такой код?

function cc(card) { // Only change code below this line function result(value) { return value ? value + " bet" : value + " hold"; } let positively = [2, 3, 4, 5, 6]; let negative = [10, "J", "Q", "K", "A"]; if (positively.includes(card)) { count++; return result(count); } else if (negative.includes(card)) { count--; return result(count); } return result(count); // Only change code above this line }

1. JS чувствительный к регистру (тем более строчные литералы), поэтому "bet" != "Bet", как и "hold" != "Hold".
2.
return value ? value + " Bet" : value + " Hold";
Здесь важно понимать: true здесь будет не только при положительных значениях, но и при отрицательных. То есть (0 == false) === true, (1 == false) === false, (-1 == false) == false

Поэтому правильно было записать так:
return value > 0 ? value + " Bet" : value + " Hold";
ну или так:
return value + (value > 0 ? " Bet" : " Hold");


1. Вот точно. Забыл про регистр.
2. Тоже верное замечание, про это не подумал.
Спасибо!

Добавить комментарий