Greška - nedostatak flag-a u funkciji u JavaScript-u
Recimo da želimo da napravimo funkciju koja će kao parametar primati cifru i broj, i proveravati da li zadata cifra postoji u broju:
function func(needle, num) {
// ovde će biti kod
}
Ovako ćemo koristiti našu funkciju:
console.log(func('3', '12345')); // ispisaće true
Izvesni programer je napisao rešenje ove zadatke:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
} else {
return false;
}
}
}
Ovo rešenje, međutim, ne radi ispravno.
Stvar je u tome što je u petlji napisan uslov,
u kojem će se već u prvoj iteraciji
izvršiti ili jedan return,
ili drugi, čime će se izvršiti
izlazak i iz petlje i iz funkcije.
Prepišimo naš kod na ispravan način, koristeći implicitne flag-ove u funkcijama:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
}
}
return false;
}