우아한테크코스 5기 프론트엔드 미션 리팩터링 1주차 4번
📋 문제 4번
https://github.com/woowacourse-precourse/javascript-onboarding/blob/main/docs/PROBLEM4.md
⚙️ 기능 목록
1. 문자를 하나하나 확인
2. 각 문자를 청개구리 사전을 참고하여 해당되는 문자로 바꾼다.
⬅️이전 풀이
⛔ 주의
영문자 이외의 문자는 변환하면 안된다.
😥 미흡했던 점
- 예외처리를 제대로 하지 않았다. 영문자 아닌건 변환하면 안된다. 요구사항을 제대로 확인.
📌 고려사항
- 클래스 사용
- 메서드 10줄 제한
- 한가지 기능만 수행
- depth 최대 2
- 영문자 아닌 건 변환하지 않음.
📜 리팩터링
class FrogWord {
constructor(word) {
this.word = word;
}
getWord() {
const letters = [];
this.word.split("").forEach((letter) => {
letters.push(this.translate(letter));
});
return letters.join("");
}
translate(letter) {
const [ASCII_A, ASCII_Z, ASCII_a, ASCII_z] = [65, 90, 97, 122];
const key = letter.charCodeAt();
if (key >= ASCII_A && key <= ASCII_Z)
return String.fromCharCode(ASCII_Z - (key - ASCII_A));
else if (key >= ASCII_a && key <= ASCII_z)
return String.fromCharCode(ASCII_z - (key - ASCII_a));
return letter;
}
}
function problem4(word) {
const frogWord = new FrogWord(word);
return frogWord.getWord();
}
module.exports = problem4;
반응형
'성장기록 > 우아한테크코스' 카테고리의 다른 글
우아한테크코스 5기 프론트엔드 미션 리팩터링 1주차 6번 (0) | 2022.11.28 |
---|---|
우아한테크코스 5기 프론트엔드 미션 리팩터링 1주차 5번 (0) | 2022.11.28 |
우아한테크코스 5기 프론트엔드 미션 리팩터링 1주차 3번 (0) | 2022.11.27 |
우아한테크코스 5기 프론트엔드 미션 리팩터링 1주차 2번 (0) | 2022.11.26 |
우아한테크코스 5기 프론트엔드 미션 리팩터링 1주차 1번 (0) | 2022.11.25 |