JavaScript'te Nesne Öğesi Alma Hatası
Diyelim ki bir nesnemiz var:
let obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
};
Bu nesneden bir anahtara göre bir öğe almak istiyoruz. Bu anahtarın adının kullanıcı tarafından bir input alanına girildiğini varsayalım:
console.log(input.value);
Bazı yeni başlayan programcılar şu hatayı yaparlar: nesneyi bir döngü içinde gezerler, anahtarları sırayla input değeri ile karşılaştırırlar, işte şöyle:
for (let key in obj) {
if (key === input.value) {
let elem = obj[key];
console.log(elem); // aranan değer
break;
}
}
Ancak, bu görevde döngü tamamen gereksizdir. Çünkü biz değerimizi doğrudan anahtara göre alabiliriz, işte şöyle:
let elem = obj[input.value];
Gerekirse, nesnede böyle bir anahtarın olup olmadığını kontrol edebilirsiniz:
if (obj[input.value] !== undefined) {
let elem = obj[input.value];
console.log(elem);
} else {
console.log('nesnede böyle bir anahtar yok');
}