cannot read property of undefined(reading 'length')

Suxxzzy.log·2022년 2월 20일
0

에러핸들링

목록 보기
20/32

주어진 구조는 children이 아얘 없거나 있거나 한 구조로, base case와 recursive step를 작성해야 하는데 조건문에서 menu[i].children.length를 적었다.
이 경우 children이 아얘 없을 경우에는 조건문 자체가 통과되지 않을 것이라고 생각했다.
그래서 재귀 구조도 분명 구현이 될 것이라고 생각했는데, 테스트 통과가 다 되지 않았다.
하지만 아래의 케이스를 간과하였기 때문에 통과가 되지 않았었다.

에러가 난 테스트 케이스에서는 cannot read property of undefined(reading 'length') 를 띄워 주고 있었다. 조건식을 계산하는 과정에서 undefined.length 자체는 아얘 boolean 값으로조차도 바꿔 줄 수 없기 때문에 조건식을 통과하기 전에도 저런 에러 메세지를 띄워줬던 것이다.

그래서 올바르게 조건식을 쓰려면, children 속성이 있냐 없냐로만 판단해야 하므로, menu[i].children !==undefined로 쓰거나 menu[i].children으로 써야 한다.

조건식을 쓸 때, 어떤 것을 기준으로 나눌지 생각이 필요하다.

profile
몫을 다하는 사람

0개의 댓글