Грешка липса на флаг в цикъл 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('няма');
}