Napaka manjkajoče zastavice v funkciji v JavaScript
Recimo, da želimo narediti funkcijo, ki bo kot parameter sprejela številko in število, ter preverila, ali vsebuje število dano številko:
function func(needle, num) {
// tukaj bo koda
}
Tako bomo uporabljali našo funkcijo:
console.log(func('3', '12345')); // izpiše true
Nek programer je napisal rešitev te naloge:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
} else {
return false;
}
}
}
Vendar ta rešitev ne deluje pravilno.
Težava je v tem, da je v zanki napisano pogojje,
v katerem se bo že v prvi iteraciji
izvedel ali en return,
ali drugi, s čimer se bo izšlo
iz zanke in iz funkcije.
Prepišimo našo kodo na pravilen način, z uporabo implicitnih zastavic v funkcijah:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
}
}
return false;
}