JavaScript ශ්රිතයක සංඥා ධජයක් නොමැති විට සිදුවන දෝෂය
අපට අංකයක් සහ ඉලක්කමක් පරාමිතිය ලෙස ලබාගෙන, දී ඇති ඉලක්කම අංකය තුළ තිබේදැයි පරීක්ෂා කරන ශ්රිතයක් සාදා ගැනීමට අවශ්ය යැයි සිතමු:
function func(needle, num) {
// මෙහි කේතය ලියනු ඇත
}
අපගේ ශ්රිතය භාවිතා කරන ආකාරය මෙයයි:
console.log(func('3', '12345')); // true මුද්රණය කරයි
සැලකිය යුතු කතුවරයෙක් මෙම ගැටලුවට විසඳුම ලිව්වේ මෙලෙසයි:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
} else {
return false;
}
}
}
කෙසේ වෙතත්, මෙම විසඳුම නිවැරදිව ක්රියා නොකරයි.
ඊට හේතුව, චක්රය තුළ ලියා ඇති කොන්දේසියේදී,
පළමු පුනරාවර්තනයේදීම එක්තරා return
වාක්යයක් හෝ අනෙක ක්රියාත්මක වන අතර, එමඟින්
චක්රයෙන්ද, ශ්රිතයෙන්ද පිටවීම සිදු කරනු ඇත.
ශ්රිතවල ගැඹුරු සංඥා ධජ භාවිතා කරමින්, අපගේ කේතය නිවැරදි ආකාරයෙන් නැවත ලියමු:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
}
}
return false;
}