Fel avsaknad av flagga i JavaScript-loop
Låt oss säga att vi har ett visst nummer:
let num = '12345';
Låt oss kontrollera om denna siffra innehåller en given digit. En programmerare har redan skrivit kod som implementerar ovanstående:
for (let digit of num) {
if (digit === '3') {
console.log('finns');
} else {
console.log('saknas');
}
}
Denna kod fungerar dock felaktigt,
och skriver ut 'finns' eller 'saknas'
för varje element i arrayen.
Vi behöver att resultatet skrivs ut
endast en gång. I detta fall löses problemet
endast med en flagga i kombination
med loopen:
let hasDigit = false; // flagga
for (let digit of num) {
if (digit === '3') {
hasDigit = true;
break;
}
}
if (hasDigit) {
console.log('finns');
} else {
console.log('saknas');
}