Fout met die verkryging van 'n objekelement in JavaScript
Kom ons het 'n sekere objek:
let obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
};
Kom ons wil 'n element uit hierdie objek kry volgens 'n sekere sleutel. Kom ons sê die naam van hierdie sleutel word deur die gebruiker in 'n invoerveld ingevoer:
console.log(input.value);
Sommige beginnerprogrammeurs maak die volgende fout: hulle deurkruis die objek in 'n lus, en vergelyk die sleutels een vir een met die waarde van die invoerveld, soos volg:
for (let key in obj) {
if (key === input.value) {
let elem = obj[key];
console.log(elem); // die gesoekte waarde
break;
}
}
In hierdie taak is die lus eger heeltemal onnodig. Ons kan eenvoudig ons waarde volgens die sleutel kry, soos volg:
let elem = obj[input.value];
Indien nodig, kan 'n kontrole vir die teenwoordigheid van so 'n sleutel in die objek bygevoeg word:
if (obj[input.value] !== undefined) {
let elem = obj[input.value];
console.log(elem);
} else {
console.log('geen so 'n sleutel in die objek nie');
}