Памылка атрымання элемента аб'екта ў 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('няма такога ключа ў аб'екце');
}