A zászló hiánya a függvényben hiba JavaScriptben
Tegyük fel, hogy szeretnénk készíteni egy függvényt, amely paraméterként fogad egy számjegyet és egy számot, majd ellenőrzi, hogy megtalálható-e a megadott számjegy a számban:
function func(needle, num) {
// itt lesz a kód
}
Így fogjuk használni a függvényünket:
console.log(func('3', '12345')); // true-t ír ki
Egy programozó így oldotta meg a feladatot:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
} else {
return false;
}
}
}
Ez a megoldás azonban helytelenül működik.
Az az oka, hogy a ciklusban egy olyan feltétel van,
amelyben az első iterációban
végrehajtódik vagy az egyik return,
vagy a másik, ezzel kilépve
mind a ciklusból, mind a függvényből.
Írjuk át a kódunkat helyes formára, használva az implicit zászlókat a függvényekben:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
}
}
return false;
}