Klaida gaunant objekto elementą JavaScript
Tarkime, kad turime tam tikrą objektą:
let obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
};
Tarkime, kad norime iš šio objekto gauti elementą pagal tam tikrą raktą. Tarkime, kad šio rakto pavadinimą įveda vartotojas į įvesties lauką:
console.log(input.value);
Kai kurie pradedantys programuotojai daro šią klaidą: jie perrenka objektą cikle, paeiliui lygindami raktus su įvesties lauko reikšme, štai taip:
for (let key in obj) {
if (key === input.value) {
let elem = obj[key];
console.log(elem); // ieškoma reikšmė
break;
}
}
Tačiau šioje užduotyje ciklas yra visiškai nereikalingas. Juk mes galime tiesiog gauti mūsų reikšmę pagal raktą, štai taip:
let elem = obj[input.value];
Jei reikia, galima pridėti tokio rakto buvimo objekte patikrinimą:
if (obj[input.value] !== undefined) {
let elem = obj[input.value];
console.log(elem);
} else {
console.log('nėra tokio rakto objekte');
}