JavaScript හි for ලූපයක යතුරු හා මූලද්රව්ය වරදවා වටහා ගැනීම
මාසවල නම් සහිත අරාවක් ලබා දී ඇතැයි සිතමු:
let arr = [
'ජනවාරි', 'පෙබරවාරි', 'මාර්තු', 'අප්රේල්', 'මැයි', 'ජූනි',
'ජූලි', 'අගෝස්තු', 'සැප්තැම්බර්', 'ඔක්තෝබර්', 'නොවැම්බර්', 'දෙසැම්බර්'
];
month යන විචල්යයේ
වර්තමාන මාසයේ අංකය ගබඩා කර ඇතැයි සිතමු:
let month = 10;
ලූපයක් භාවිතා කරමින් සියලුම මාස පෙන්වමු, වර්තමාන මාසය ඉතැලික් (italic) අකුරින් පෙන්වමු.
කිසියම් වැඩසටහන්කරුවෙක් මෙම කාර්යය විසඳා ඇත,
නමුත් ඔහු වැරදී ඇති අතර
month විචල්යයේ
මාසයේ නම නොව එහි අංකය ගබඩා කර ඇති බවට අවධානය යොමු නොකළේය:
for (let i = 0; i < arr.length; i++) {
if (month === arr[i]) { // දෝෂය මෙහි ඇත
document.write('<i>' + arr[i] + '</i>');
}
else {
document.write(arr[i]);
}
document.write('<br>');
}
අපගේ වැඩසටහන්කරු අරාවේ මූලද්රව්යය
month විචල්යය සමඟ සංසන්දනය කරයි.
නමුත් මෙම විචල්යයේ ගබඩා කර ඇත්තේ මාසයේ අංකය,
එහි නම නොවේ!
කේතය නිවැරදිව ක්රියා කිරීම සඳහා,
month මාසයේ අංකය සමඟ,
එනම් ගණකයේ (counter) අගය i සමඟ සංසන්දනය කළ යුතුය:
for (let i = 0; i < arr.length; i++){
if (month === i) { // දෝෂය නිවැරදි කළා
document.write('<i>' + arr[i] + '</i>');
}
else {
document.write(arr[i]);
}
document.write('<br>');
}