Fejl ved manglende flag i JavaScript-løkke
Lad os sige, at vi har et tal:
let num = '12345';
Lad os tjekke, om dette tal indeholder et bestemt ciffer. En programmør har allerede skrevet kode, der implementerer det beskrevne:
for (let digit of num) {
if (digit === '3') {
console.log('til stede');
} else {
console.log('ikke til stede');
}
}
Denne kode fungerer dog ikke korrekt, da den udskriver 'til stede' eller 'ikke til stede' for hvert element i arrayet. Vi har brug for, at resultatet kun udskrives én gang. I dette tilfælde løses opgaven kun ved hjælp af et flag i kombination med løkken:
let hasDigit = false; // flag
for (let digit of num) {
if (digit === '3') {
hasDigit = true;
break;
}
}
if (hasDigit) {
console.log('til stede');
} else {
console.log('ikke til stede');
}