Fejl ved hentning af objekt-element i JavaScript
Lad os sige, at vi har et objekt:
let obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
};
Lad os sige, at vi vil hente et element fra dette objekt via en bestemt nøgle. Lad os sige, at navnet på denne nøgle indtastes af brugeren i en inputfelt:
console.log(input.value);
Nogle begyndere laver følgende fejl: de gennemløber objektet i en løkke, sammenligner nøglerne én efter én med værdien fra inputfeltet, sådan her:
for (let key in obj) {
if (key === input.value) {
let elem = obj[key];
console.log(elem); // den søgte værdi
break;
}
}
Dog er løkken i denne opgave helt unødvendig. Vi kan jo simpelthen hente vores værdi via nøglen, sådan her:
let elem = obj[input.value];
Hvis nødvendigt, kan man tilføje en kontrol for tilstedeværelsen af en sådan nøgle i objektet:
if (obj[input.value] !== undefined) {
let elem = obj[input.value];
console.log(elem);
} else {
console.log('Der er ingen sådan nøgle i objektet');
}