Chyba při získávání prvku objektu v JavaScriptu
Předpokládejme, že máme nějaký objekt:
let obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
};
Předpokládejme, že chceme z tohoto objektu získat prvek podle nějakého klíče. Nechť jméno tohoto klíče zadává uživatel do vstupního pole:
console.log(input.value);
Někteří začínající programátoři dělají následující chybu: procházejí objekt v cyklu, porovnávají postupně klíče s hodnotou vstupního pole, například takto:
for (let key in obj) {
if (key === input.value) {
let elem = obj[key];
console.log(elem); // hledaná hodnota
break;
}
}
Avšak v této úloze je cyklus naprosto zbytečný. Vždyť můžeme jednoduše získat naši hodnotu podle klíče, například takto:
let elem = obj[input.value];
V případě potřeby lze přidat kontrolu existence takového klíče v objektu:
if (obj[input.value] !== undefined) {
let elem = obj[input.value];
console.log(elem);
} else {
console.log('v objektu není žádný takový klíč');
}