Feil ved henting av element i objekt i JavaScript
La oss si at vi har et objekt:
let obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
};
La oss si at vi vil hente et element fra dette objektet ved hjelp av en bestemt nøkkel. La oss si at navnet på denne nøkkelen blir skrevet inn av brukeren i et input-felt:
console.log(input.value);
Noen nybegynnere gjør følgende feil: de itererer gjennom objektet i en løkke, sammenligner nøklene etter tur med verdien fra input-feltet, slik:
for (let key in obj) {
if (key === input.value) {
let elem = obj[key];
console.log(elem); // den søkte verdien
break;
}
}
Imidlertid er løkken helt unødvendig i denne oppgaven. Vi kan jo bare hente vår verdi ved hjelp av nøkkelen, slik:
let elem = obj[input.value];
Om nødvendig kan man legge til en sjekk for om en slik nøkkel finnes i objektet:
if (obj[input.value] !== undefined) {
let elem = obj[input.value];
console.log(elem);
} else {
console.log('ingen slik nøkkel i objektet');
}