Грешка недостатка флага у циклу JavaScript
Нека имамо неки број:
let num = '12345';
Да проверимо да ли у овом броју постоји задата цифра. Неки програмер је већ написао код који имплементира описано:
for (let digit of num) {
if (digit === '3') {
console.log('има');
} else {
console.log('нема');
}
}
Овај код, међутим, не ради исправно,
што исписује 'има' или 'нема'
за сваки елемент низа.
Нама је потребно да се резултат испише
само једном. У овом случају, у комбинацији
са циклом, проблем се решава само помоћу флага:
let hasDigit = false; // флаг
for (let digit of num) {
if (digit === '3') {
hasDigit = true;
break;
}
}
if (hasDigit) {
console.log('има');
} else {
console.log('нема');
}