위 코드에서 num은 질문의 문항이고, type은 답변의 문항이다.
분명 문제마다 답을 하나씩 선택했을 때 scores에 카운팅을 하는 것은 동일하기 때문에, 코드의 형식은 매번 같으나
알고리즘 문제도 아니고 어떤 수치적으로의 패턴이 없는 상황에서
이 if 지옥은 아무리 봐도 아닌 것 같은데 .. 근데 어떻게 해야하지 ... 하다가
짱고수 개발자에게 자문을 구해보았다. 🤩
Map을 만들어서, 문항별 답변에 어떤 스코어의 값을 올려줄 지 기록한다.
값을 올려줄 때 해당 스코어의 값을 Map에서 찾아와서 올려주는 코드는
더 이상 중복하지 않고 두 줄로 끝내버린다. (에러 처리는 덤 ..)
Map 자체는 계속 길어지지만, (아마 이 Map도 더 스마트하게 할 수 있는 방법이 있겠지)
핵심 코드는 간단해졌기에 누가 봐도 금방 이해할 수 있는 깔끔한 코드가 되었다 :>
앞으로도 if 지옥이 펼쳐질 것 같을 때 Map을 떠올려서 적용해보기!
'main > JS | TS' 카테고리의 다른 글
[수강후기] 유데미(Udemy) 【한글자막】 Typescript :기초부터 실전형 프로젝트까지 with React + NodeJS (0) | 2024.04.24 |
---|---|
실제로 타입스크립트의 컴파일 과정은 어떻게 동작할까 (1) | 2024.02.06 |
타입 확장하기 (Union/Intersection Type), 좁히기 (Type Guard) (0) | 2024.01.12 |
타입스크립트 고급 타입 (Index Signatures, Indexed Access Types, Mapped Types, Template Literal Types) (0) | 2024.01.05 |
JS의 list 함수 끝판왕 reduce와 친해지기 :) (1) | 2023.12.22 |