자바스크립트에서 객체 요소 접근 오류
다음과 같은 객체가 있다고 가정해 보겠습니다:
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('객체에 해당 키가 없습니다');
}