Eroare la obținerea elementului unui obiect în JavaScript
Să presupunem că avem un obiect:
let obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
};
Să presupunem că vrem să obținem din acest obiect un element după o anumită cheie. Să presupunem că numele acestei chei este introdus de utilizator într-un câmp de introducere:
console.log(input.value);
Unii programatori începători fac următoarea greșeală: iteră obiectul într-o buclă, comparând pe rând cheile cu valoarea câmpului de introducere, astfel:
for (let key in obj) {
if (key === input.value) {
let elem = obj[key];
console.log(elem); // valoarea căutată
break;
}
}
Cu toate acestea, în această sarcină bucla este complet inecesară. Pentru că putem obține pur și simplu valoarea noastră după cheie, astfel:
let elem = obj[input.value];
Dacă este necesar, puteți adăuga o verificare a existenței acestei chei în obiect:
if (obj[input.value] !== undefined) {
let elem = obj[input.value];
console.log(elem);
} else {
console.log('nu există o astfel de cheie în obiect');
}