해결된 질문
작성
·
207
0
강의 8:18 부분에서 강사님 코드 49번째 줄 말고 이렇게 작성하면 왜 안되나요?
console.log(documentobj[docKeys][i]);
답변 2
0
안녕하세요! 서연님!
documentObj[docKeys[i]]
와 documentObj[docKeys][i]
차이가 궁금하셨군요!
조금 이해하기 쉽도록 이름을 아래처럼 변경해 볼게요!
프로필[취미[0]]
vs 프로필[취미][0]
위 둘은 실제로 비슷해 보이지만, 아주아주 다르답니다!
위 둘을 이해하기 위해서, 객체와 배열에 대해서 조금만 더 자세히 알아보고 시작할게요!
// 배열
const 이름 = ["철수", "영희", "훈이"]
이름[0] // 철수
이름[1] // 영희
이름[2] // 훈이
// 객체
const 프로필 = {
이름: "철수",
나이: 12
}
프로필.이름 // 철수
프로필.나이 // 12
자! 여기서, 객체는 조금 특이한 성질을 가지고 있는데요!
아래와 같은 방법으로도 사용 가능하답니다!
// 객체
const aaa = "이름"
const 프로필 = {
이름: "철수",
나이: 12
}
프로필.이름 // 철수
프로필[aaa] // aaa는 변수이므로 다음과 같이 바뀌어요! => 프로필["이름"] => 프로필.이름 => 철수
여기서 대괄호 []가 나오기 때문에 배열로 많이들 헷갈려 하시지만, 이것은 객체에서 접근하는 데이터가 변수안에 들어가 있을 때 보통 사용한답니다!
그렇다면, 프로필.aaa는 안될까요?
프로필.aaa라고 사용하시게 되면, aaa는 변수가 아니라 키값을 의미하겠죠?! 따라서 안됩니다!
const aaa = "이름"
const 프로필 = {
이름: "철수",
나이: 12,
aaa: "바나나"
}
프로필[aaa] // 프로필["이름"] => 프로필.이름 => 철수
프로필.aaa // 바나나
위의 원리를 이해하셨다면 실제 질문으로 돌아가볼까요?!
프로필[취미[0]]
vs 프로필[취미][0]
const 취미 = ["수영", "축구", "농구"]
const 프로필 = {
수영: "1등",
축구: "2등",
농구: "3등"
}
1) 프로필[취미[0]] // => 프로필["수영"] => 프로필.수영 => "1등"
2) 프로필[취미][0] // => 프로필[["수영", "축구", "농구"]][0] => 프로필에서 수영, 축구, 농구 중 뭘 선택하라는 거지...? ** 에러발생 **
따라서, 2번의 경우, 에러가 발생하게 돼요!
0
안녕하세요 김서연 님, 인프런 AI 인턴이에요.
제공해주신 코드를 살펴보았을 때, documentobj
와 docKeys
가 정확히 어떤 변수를 가리키는지 확인해야합니다. 또한, 해당 코드가 어떤 목적을 가지고 사용되는지 이해할 필요가 있습니다. 코드 전체를 파악한 후에 보다 정확한 답변을 드릴 수 있습니다. 감사합니다!