JavaScript හි මූලද්රව්ය අරාවකට ප්රවේශ වීමේ දෝෂය
සමහර විට ආරම්භක ප්රෝග්රාමිකයන් විසින් මූලද්රව්ය අරාවක් සමඟ වැඩ කිරීමට උත්සාහ කරනු ලබන්නේ ඔවුන්ට තනි මූලද්රව්යයක් ඇති ආකාරයටය. අපි බලමු, මෙම දෝෂයේ සාරය කුමක්දැයි.
උදාහරණයක් ලෙස ඡේද ලබා දී ඇත:
<p>1</p>
<p>2</p>
<p>3</p>
යම් ප්රෝග්රාමිකයෙකු තීරණය කළේ සෑම ඡේදයකම පාඨයට එකම අගයක් ලියා තැබීමට යැයි උපකල්පනය කරමු. මේ සඳහා ඔහු මෙම මූලද්රව්ය වලට යොමුවන්න ලබා ගත්තේ විචල්යයකට:
let elems = document.querySelectorAll('p');
ඉන්පසු අපේ ප්රෝග්රාමිකයා වැරදියට අපගේ විචල්යය වෙත ප්රවේශ වන්නේ එහි අරාවක් නොව තනි මූලද්රව්යයක් ඇති ආකාරයටය. එහි ප්රතිඵලයක් ලෙස ඡේද වල පාඨය වෙනස් නොවන නමුත්, විශේෂත්වය නම්, කොන්සෝලයේ දෝෂයක් ද නොපෙන්වන බවයි:
elems.textContent = '!';
මෙහි නිවැරදි විසඳුම වන්නේ මූලද්රව්ය අරාව පුනරාවර්තන ලූපයකින් හරහා ගමන් කර සෑම මූලද්රව්යයක් සඳහාම වෙන වෙනම අවශ්ය ක්රියාව ඉටු කිරීමයි:
for (let elem of elems) {
elem.textContent = '!';
}