JavaScript에서는 문자열을 인자로 받아 for 루프를 사용해 역순으로 된 새로운 문자열을 만드는 함수를 작성할 수 있습니다. 이 방법은 내장 메서드에 의존하지 않고 문자열의 각 문자를 끝에서부터 앞으로 순회하며 새 문자열에 하나씩 추가하는 원리입니다.
동작 원리
먼저 입력받은 문자열의 길이를 구한 뒤, 마지막 인덱스(len - 1)부터 시작해 0까지 거꾸로 반복하면서 각 위치의 문자를 결과 변수에 이어 붙입니다. 모든 반복이 끝나면 완성된 역순 문자열을 반환합니다.
예제 코드
다음은 실제 동작하는 코드입니다.
const str = 'this is the original string';
const reverseString = (str = '') => {
let reverse = '';
const { length: len } = str;
for (let i = len - 1; i >= 0; i--) {
reverse += str[i];
}
return reverse;
};
console.log(reverseString(str));실행 결과
위 코드를 실행하면 콘솔에 다음과 같이 출력됩니다.
gnirts lanigiro eht si siht
코드 설명
- 구조 분해 할당:
const { length: len } = str;을 통해 문자열의 길이를len변수에 담습니다. - 역방향 반복:
i = len - 1에서 시작해i >= 0조건까지 감소하며 순회합니다. - 문자 누적:
reverse += str[i];로 각 문자를 순서대로 덧붙여 최종적으로 뒤집힌 문자열을 얻습니다.
이 접근 방식은 시간 복잡도가 O(n)으로, 문자열의 길이에 비례해 처리되므로 대부분의 경우 효율적으로 동작합니다.