JavaScriptda funktsiyada bayroq yo'qligi xatosi
Faraz qilaylik, biz raqam va sonni parametr sifatida qabul qiladigan va berilgan raqam sonning ichida bormi yo'qmi tekshiradigan funktsiya yaratmoqchimiz:
function func(needle, num) {
// kod shu yerda bo'ladi
}
Biz funktsiyamizdan shunday foydalanamiz:
console.log(func('3', '12345')); // true chiqadi
Ma'lum bir dasturchi bu masalaning yechimini shunday yozgan:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
} else {
return false;
}
}
}
Biroq, bu yechim noto'g'ri ishlaydi.
Sababi, tsikl ichidagi shartda,
allaqachon birinchi iteratsiyada
return ning biri yoki ikkinchisi
bajariladi, shu bilan tsikldan ham,
funktsiyadan ham chiqib ketiladi.
Keling, kodimizni funktsiyalarda yashirin bayroqlar dan foydalanib, to'g'ri qayta yozamiz:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
}
}
return false;
}