JavaScript හි ලූප සඳහා වරහන් වල විකල්පතාවයේ ගැටලුව
ලූප සඳහා සර්පිලාකාර වරහන් ඉවත් කළ හැකි වුවද, එවැනි කේතය බොහෝ විට දෝෂ ඇති කරන නිසා මම එසේ කිරීම ඉතා නිර්දේශ නොකරමි.
උදාහරණයක් බලමු. අපට පහත කේතය ඇතැයි සිතමු:
for (let i = 0; i <= 9; i++)
console.log(i); // 0 සිට 9 දක්වා සංඛ්යා පෙන්වයි
ඉහත දක්වා ඇති කේතයේ සුළු වෙනසක් කරමි (කුමක්දැයි සොයන්න) - එයින් ක්රියා කිරීම නතර වේ:
for (let i = 0; i <= 9; i++);
console.log(i); // දෝෂයක් පෙන්වයි
ඉතින්, මම කුමක් හරියද?
ලූපයේ වරහන ) ඉදිරියේ අර්ධ විරාමය (;) තැබීම නිසා ගැටලුව ඇති විය. එවිට ඊනියා
ශරීරය නොමැති ලූපය ලැබේ: එය ඇතුළත සර්පිලාකාරව කැරකෙන අතර, ඊළඟ පේළිය එයට අදාළ නොවේ. එබැවින්, ගැටලු වළක්වා ගැනීම සඳහා,
මම සැමවිටම ලූපවල සර්පිලාකාර වරහන් තැබීම නිර්දේශ කරමි.
පහත කේතය ක්රියාත්මක කිරීමේ ප්රතිඵලය කුමක් දැයි කියන්න:
let arr = [1, 2, 3, 4, 5];
for (let elem of arr);
console.log(elem);