JavaScript හි වස්තුවක මූලද්රව්යයක් ලබා ගැනීමේ දෝෂය
අපට යම් වස්තුවක් ඇතැයි සිතමු:
let obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
};
මෙම වස්තුවෙන් යම් යතුරක් භාවිතයෙන් මූලද්රව්යයක් ලබා ගැනීමට අපට අවශ්ය යැයි සිතමු. මෙම යතුරේ නම පරිශීලකයා විසින් input ක්ෂේත්රයකට ඇතුලත් කරන බව සිතමු:
console.log(input.value);
සමහර ආරම්භක ක්රමලේඛන ශිල්පීන් කරන පහත දෝෂය: ඔවුන් වස්තුව loop එකකින් හරහා ගමන් කර, යතුරු එකින් එක input හි අගය සමඟ සසඳයි, මෙසේ:
for (let key in obj) {
if (key === input.value) {
let elem = obj[key];
console.log(elem); // සෙවූ අගය
break;
}
}
කෙසේ වෙතත්, මෙම කාර්යයේ දී loop එක සම්පූර්ණයෙන්ම අනවශ්ය ය. අපට අපේ අගය යතුර භාවිතයෙන් සරලව ලබා ගත හැකිය, මෙසේ:
let elem = obj[input.value];
අවශ්ය නම්, එවැනි යතුරක් තිබීම වස්තුවේ පවතීද යන්න පරීක්ෂා කිරීම එකතු කළ හැකිය:
if (obj[input.value] !== undefined) {
let elem = obj[input.value];
console.log(elem);
} else {
console.log('වස්තුවේ එවැනි යතුරක් නොමැත');
}