Błąd pobierania elementu obiektu w JavaScript
Załóżmy, że mamy pewien obiekt:
let obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
};
Załóżmy, że chcemy pobrać z tego obiektu element za pomocą pewnego klucza. Niech nazwa tego klucza będzie wprowadzana przez użytkownika w pole input:
console.log(input.value);
Niektórzy początkujący programiści popełniają następujący błąd: przeglądają obiekt w pętli, porównując po kolei klucze z wartością pola input, o tak:
for (let key in obj) {
if (key === input.value) {
let elem = obj[key];
console.log(elem); // poszukiwana wartość
break;
}
}
Jednakże w tym zadaniu pętla jest całkowicie zbędna. Przecież możemy po prostu uzyskać naszą wartość po kluczu, w ten sposób:
let elem = obj[input.value];
W razie potrzeby można dodać sprawdzenie obecności takiego klucza w obiekcie:
if (obj[input.value] !== undefined) {
let elem = obj[input.value];
console.log(elem);
} else {
console.log('nie ma takiego klucza w obiekcie');
}