본문 바로가기

main/JS | TS

무한 if 지옥을 벗어나자 (feat. Map)

 

위 코드에서 num은 질문의 문항이고, type은 답변의 문항이다.

 

분명 문제마다 답을 하나씩 선택했을 때 scores에 카운팅을 하는 것은 동일하기 때문에, 코드의 형식은 매번 같으나

알고리즘 문제도 아니고 어떤 수치적으로의 패턴이 없는 상황에서

이 if 지옥은 아무리 봐도 아닌 것 같은데 .. 근데 어떻게 해야하지 ... 하다가

짱고수 개발자에게 자문을 구해보았다. 🤩


Map을 만들어서, 문항별 답변에 어떤 스코어의 값을 올려줄 지 기록한다. 

값을 올려줄 때 해당 스코어의 값을 Map에서 찾아와서 올려주는 코드는

더 이상 중복하지 않고 두 줄로 끝내버린다. (에러 처리는 덤 ..)

 

Map 자체는 계속 길어지지만, (아마 이 Map도 더 스마트하게 할 수 있는 방법이 있겠지)

핵심 코드는 간단해졌기에 누가 봐도 금방 이해할 수 있는 깔끔한 코드가 되었다 :>

 

앞으로도 if 지옥이 펼쳐질 것 같을 때 Map을 떠올려서 적용해보기!