Funkcijos be vėliavos klaida JavaScript
Tarkime, norime sukurti funkciją, kuri parametrais priimtų skaitmenį ir skaičių, ir tikrintų, ar nurodytas skaitmuo yra skaičiuje:
function func(needle, num) {
// čia bus kodas
}
Taip mes naudosimės mūsų funkcija:
console.log(func('3', '12345')); // išves true
Kažkoks programuotojas parašė šios užduoties sprendimą:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
} else {
return false;
}
}
}
Šis sprendimas, tačiau, veikia neteisingai.
Reikalas tas, kad cikle parašyta sąlyga,
kurioje pačioje pirmoje iteracijoje
įvyks arba vienas return,
arba antras, taip įvykdžius
išėjimą ir iš ciklo, ir iš funkcijos.
Perrašykime mūsų kodą teisingu būdu, naudodami neišreikštas vėliavas funkcijose:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
}
}
return false;
}