Errore assenza flag nel ciclo JavaScript
Supponiamo di avere un certo numero:
let num = '12345';
Controlliamo se in questo numero è presente una cifra specificata. Un programmatore ha già scritto il codice che implementa quanto descritto:
for (let digit of num) {
if (digit === '3') {
console.log('c'è');
} else {
console.log('no');
}
}
Questo codice, tuttavia, funziona in modo errato,
stampando 'c'è' o 'no'
per ogni elemento dell'array.
Noi invece abbiamo bisogno che il risultato venga stampato
solo una volta. In questo caso, in combinazione
con il ciclo, il problema si risolve solo tramite un flag:
let hasDigit = false; // flag
for (let digit of num) {
if (digit === '3') {
hasDigit = true;
break;
}
}
if (hasDigit) {
console.log('c'è');
} else {
console.log('no');
}