Gabimi i mungesës së flamurit në funksion në JavaScript
Le të supozojmë se duam të bëjmë një funksion, që do të marrë si parametër një shifër dhe një numër, dhe do të kontrollojë nëse shifra e specifikuar gjendet në numër:
function func(needle, num) {
// këtu do të jetë kodi
}
Kështu do të përdorim funksionin tonë:
console.log(func('3', '12345')); // do të shfaqë true
Një programues shkroi një zgjidhje për këtë detyrë:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
} else {
return false;
}
}
}
Kjo zgjidhje, megjithatë, nuk funksionon si duhet.
Çështja është se në ciklin është shkruar një kusht,
ku në përsëritjen e parë
do të ekzekutohet ose një return,
ose tjetri, duke shkaktuar kështu
daljen si nga cikli, ashtu edhe nga funksioni.
Le të rishkruajmë kodin tonë në mënyrën e duhur, duke përdorur flamurat e nënkuptuara në funksione:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
}
}
return false;
}