JavaScript에서 문자열을 뒤집는 것은 코딩 테스트나 실무에서 자주 마주치는 기본적인 작업입니다. 이 글에서는 while 반복문을 활용한 방법을 예제와 함께 살펴보고, 더 간결한 대체 방법까지 함께 소개합니다.
예제: while 반복문으로 문자열 뒤집기
아래 코드는 "qries"라는 문자열을 뒤집어 출력하는 전체 예제입니다.
<!DOCTYPE html>
<html>
<body>
<script>
var myStr;
function reverseStr(myStr) {
if(!myStr.trim() || 'string' !== typeof myStr) {
return;
}
let l=myStr.length, s='';
while(l > 0) {
l--;
s+= myStr[l];
}
return s;
}
document.write("Reversed String: " +reverseStr("qries"));
</script>
</body>
</html>코드 동작 원리
위 함수의 로직은 다음과 같이 단계별로 이루어집니다.
1. 유효성 검사: myStr.trim()으로 공백만 있는 문자열인지 확인하고, typeof myStr !== 'string' 조건으로 입력값이 문자열 타입인지 검사합니다. 유효하지 않은 입력이면 아무것도 반환하지 않고 종료합니다.
2. 역순 순회: 변수 l에 문자열의 길이를 저장한 후, 반복문 안에서 l--로 인덱스를 끝에서부터 앞으로 하나씩 줄여가며 각 문자를 새로운 문자열 s에 이어 붙입니다.
3. 결과 반환: 모든 문자를 거꾸로 이어 붙인 s를 반환합니다. 실행 결과는 다음과 같습니다.
Reversed String: seirq
더 간결한 방법: 내장 메서드 활용하기
반복문 없이 JavaScript의 내장 메서드를 체이닝하면 한 줄로 문자열을 뒤집을 수 있습니다.
const reversed = "qries".split('').reverse().join('');
console.log(reversed); // "seirq"동작 방식은 다음과 같습니다.
split(''): 문자열을 한 글자씩 나눠 배열로 만듭니다.reverse(): 배열의 요소 순서를 뒤집습니다.join(''): 배열의 요소를 다시 하나의 문자열로 합칩니다.
마무리
직접 반복문을 작성하는 방식은 알고리즘 학습이나 면접 준비에 유용하고, split().reverse().join() 방식은 가독성과 생산성 면에서 실무에 적합합니다. 상황에 맞게 두 가지 방법을 선택해서 사용해 보세요.