외부에서 받은 객체와 객체 배열 데이터에 접근하기

Uhan33·2024년 3월 13일
0

TIL

목록 보기
46/72

전에도 비슷한 문제를 겪었는데 이번에도 겪어서 정리 해두려 한다.
외부에서 json객체 배열을 넘겨받고, 이 객체 배열에 접근하려고 시도했다.
그러나, 객체 배열을 반복문이든 뭐든 사용하여 하나씩 분리하고, 분리된 객체 안의 key에 접근해서 value를 알아내려 했으나.. 일반적으로 접근하려 하니 외부에서 들어온 객체라 정의되지 않은 속성에 접근할 수 없어 빨간 밑줄이 생겼다..

ex)

// objs = [{color: "red", number: 1},{color: "blue", number: 2}]

objTest(objs) {
	for(let obj of objs) {
		console.log(obj.color)    // 여기 color에서 빨간 밑줄 발생
	}
}
...

애초에 함수 안에서 정의한 객체라면 상관 없었겠지만
외부에서 들어온 objs에 color 속성이 있는지 알 수가 없어 접근 시 오류가 발생했다.
이를 어떻게 해결해야하나 여러 시도를 해보았는데 방법을 결국 찾아냈다..

방법은 obj 뒤에 접근하고자 하는 속성을 []안에 넣어 접근하는 것이다!
위의 예시를 고치면 아래와 같다.

ex)

// objs = [{color: "red", number: 1},{color: "blue", number: 2}]

objTest(objs) {
	for(let obj of objs) {
		console.log(obj.["color"])    // 빨간줄 사라짐 and color 접근 가능
	}
}
...

이처럼 직접 정의되지 않은 객체의 속성에 접근할 때
위의 방법으로 접근해주면 된다.

0개의 댓글