Fout bij het ophalen van een objectelement in JavaScript
Stel we hebben een object:
let obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
};
Stel we willen een element uit dit object halen op basis van een bepaalde sleutel. Stel dat de naam van deze sleutel door de gebruiker wordt ingevoerd in een input:
console.log(input.value);
Sommige beginnende programmeurs maken de volgende fout: ze itereren het object in een lus, vergelijken de sleutels om de beurt met de waarde van de input, zoals hier:
for (let key in obj) {
if (key === input.value) {
let elem = obj[key];
console.log(elem); // de gezochte waarde
break;
}
}
Echter, in deze taak is de lus volledig overbodig. We kunnen onze waarde immers eenvoudig direct ophalen via de sleutel, zoals hier:
let elem = obj[input.value];
Indien nodig kan een controle worden toegevoegd om te checken of zo'n sleutel in het object aanwezig is:
if (obj[input.value] !== undefined) {
let elem = obj[input.value];
console.log(elem);
} else {
console.log('geen solche sleutel in het object');
}