Eroare lipsă flag în funcție în JavaScript
Să presupunem că vrem să facem o funcție, care va lua ca parametru o cifră și un număr, și va verifica dacă exista cifra specificată în număr:
function func(needle, num) {
// aici va fi codul
}
Iată cum vom folosi funcția noastră:
console.log(func('3', '12345')); // va afișa true
Un anumit programator a scris o soluție pentru această sarcină:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
} else {
return false;
}
}
}
Această soluție, totuși, funcționează incorect.
Problema este că în ciclu este scrisă o condiție,
în care la prima iterație
se va executa fie un return,
fie celălalt, realizând astfel
ieșirea atât din ciclu, cât și din funcție.
Să rescriem codul nostru în mod corect, folosind flag-uri implicite în funcții:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
}
}
return false;
}