Erro de ausência de flag em loop JavaScript
Suponha que temos um determinado número:
let num = '12345';
Vamos verificar se há um dígito específico neste número. Um certo programador já escreveu o código que implementa isso:
for (let digit of num) {
if (digit === '3') {
console.log('tem');
} else {
console.log('não');
}
}
Este código, no entanto, funciona incorretamente,
exibindo 'tem' ou 'não'
para cada elemento do array.
Precisamos que o resultado seja exibido
apenas uma vez. Neste caso, em combinação
com o loop, o problema é resolvido apenas com uma flag:
let hasDigit = false; // flag
for (let digit of num) {
if (digit === '3') {
hasDigit = true;
break;
}
}
if (hasDigit) {
console.log('tem');
} else {
console.log('não');
}