Chyba pri získavaní prvku objektu v JavaScripte
Majme nejaký objekt:
let obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
};
Predpokladajme, že chceme z tohto objektu získať prvok pod určitým kľúčom. Nech je názov tohto kľúča zadaný používateľom do vstupného poľa:
console.log(input.value);
Niektorí začínajúci programátori robia nasledovnú chybu: prechádzajú objekt v cykle, porovnávajú kľúče so hodnotou vstupného poľa, takto:
for (let key in obj) {
if (key === input.value) {
let elem = obj[key];
console.log(elem); // hľadaná hodnota
break;
}
}
Avšak, v tejto úlohe je cyklus úplne zbytočný. Veď hodnotu môžeme jednoducho získať priamo podľa kľúča, takto:
let elem = obj[input.value];
V prípade potreby je možné pridať kontrolu existencie takého kľúča v objekte:
if (obj[input.value] !== undefined) {
let elem = obj[input.value];
console.log(elem);
} else {
console.log('v objekte nie je taký kľúč');
}