Грешка при получаване на елемент от обект в JavaScript
Да предположим, че имаме някакъв обект:
let obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
};
Да предположим, че искаме да получим от този обект елемент по някакъв ключ. Нека името на този ключ се въвежда от потребителя в поле за въвеждане:
console.log(input.value);
Някои начинаещи програмисти правят следната грешка: те обхождат обекта в цикъл, сравнявайки последователно ключовете със стойността от полето за въвеждане, ето така:
for (let key in obj) {
if (key === input.value) {
let elem = obj[key];
console.log(elem); // търсената стойност
break;
}
}
Въпреки това, в тази задача цикълът е напълно излишен. В крайна сметка можем просто да получим нашата стойност по ключ, ето така:
let elem = obj[input.value];
При необходимост може да се добави проверка за наличието на такъв ключ в обекта:
if (obj[input.value] !== undefined) {
let elem = obj[input.value];
console.log(elem);
} else {
console.log('няма такъв ключ в обекта');
}