문제 상황
JavaScript 함수를 작성해야 합니다. 이 함수는 문자열(str)을 매개변수로 받아서, 알파벳 문자만 남기고 나머지는 모두 제거한 뒤 해당 문자들을 역순으로 반전시켜 반환하는 역할을 수행합니다.
즉, 숫자나 특수문자 같은 비(非)알파벳 문자는 무시하고, 오직 영문 대소문자만 추출하여 순서를 거꾸로 뒤집어야 합니다.
접근 방법
이 문제는 JavaScript의 내장 메서드 체이닝을 활용하면 간단하게 해결할 수 있습니다.
- split('') — 문자열을 한 글자씩 배열로 분리합니다.
- reverse() — 배열 요소들의 순서를 뒤집습니다.
- filter() — 정규 표현식
/[a-zA-Z]/을 사용해 알파벳 문자만 남깁니다. - join('') — 필터링된 배열을 다시 하나의 문자열로 합칩니다.
예제 코드
다음은 실제 구현 코드입니다.
const str = 'exa13mple';
function reverseLetter(str) {
const res = str.split('')
.reverse()
.filter(val => /[a-zA-Z]/.test(val))
.join('');
return res;
};
console.log(reverseLetter(str));
출력 결과
elpmaxe
코드 설명
입력 문자열 'exa13mple'에는 숫자 13이 포함되어 있습니다. 위 코드가 실행되면 다음과 같은 과정을 거칩니다.
- 문자열이
['e', 'x', 'a', '1', '3', 'm', 'p', 'l', 'e']형태의 배열로 분리됩니다. - 배열이 반전되어
['e', 'l', 'p', 'm', '3', '1', 'a', 'x', 'e']가 됩니다. - 정규식 검사를 통해 숫자
'1'과'3'이 제거됩니다. - 최종적으로
'elpmaxe'라는 문자열이 출력됩니다.
이처럼 메서드 체이닝을 활용하면 별도의 반복문 없이도 깔끔하고 가독성 높은 코드로 문제를 해결할 수 있습니다.