Objekti elemendi saamise viga JavaScriptis
Olgu meil mingi objekt:
let obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
};
Oletame, et tahame sellest objektist saada elementi mingi võtme järgi. Oletame, et selle võtme nime sisestab kasutaja sisendväljale:
console.log(input.value);
Mõned algajad programmeerijad teevad järgmise vea: nad itererivad objekti tsüklis, võrreldes kordamööda võtmeid sisendi väärtusega, niimoodi:
for (let key in obj) {
if (key === input.value) {
let elem = obj[key];
console.log(elem); // otsitav väärtus
break;
}
}
Siiski, selles ülesandes on tsükkel täiesti koormatu. Sest me saame lihtsalt meie väärtuse võtme järgi, niimoodi:
let elem = obj[input.value];
Vajadusel saab lisada kontrolli, kas selline võti on objektis olemas:
if (obj[input.value] !== undefined) {
let elem = obj[input.value];
console.log(elem);
} else {
console.log('sellist võtit ei ole objektis');
}