Objektumelem lekérésekor fellépő hiba JavaScriptben
Tegyük fel, hogy van egy objektumunk:
let obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
};
Tegyük fel, hogy ebből az objektumból szeretnénk egy elemet egy adott kulcs alapján. Tegyük fel, hogy a kulcs nevét a felhasználó egy input mezőbe írja be:
console.log(input.value);
Néhány kezdő programozó a következő hibát követi el: végigiterálnak az objektumon egy ciklusban, egymás után összehasonlítva a kulcsokat az input értékével, így:
for (let key in obj) {
if (key === input.value) {
let elem = obj[key];
console.log(elem); // a keresett érték
break;
}
}
Azonban ebben a feladatban a ciklus teljesen felesleges. Hiszen egyszerűen megkaphatjuk az értékünket a kulcs alapján, így:
let elem = obj[input.value];
Szükség esetén hozzáadhatunk egy ellenőrzést, hogy van-e ilyen kulcs az objektumban:
if (obj[input.value] !== undefined) {
let elem = obj[input.value];
console.log(elem);
} else {
console.log('nincs ilyen kulcs az objektumban');
}