Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

자바스크립트로 문자열의 단어 순서 반전하기

자바스크립트를 사용하다 보면 문장 내 단어들의 순서를 거꾸로 뒤집어야 하는 경우가 종종 있습니다. 예를 들어 채팅 앱의 텍스트 효과나 알고리즘 문제 풀이 등에서 유용하게 활용할 수 있습니다.

문제 상황

문장을 나타내는 문자열 하나를 입력받아, 해당 문자열에 포함된 단어들의 순서를 반대로 뒤집은 새로운 문자열을 반환하는 함수를 작성해야 합니다.

즉, 마지막 단어가 첫 번째로, 마지막에서 두 번째 단어가 두 번째로 이동하는 식으로 전체 단어 순서를 역순으로 배치하는 것이 목표입니다.

해결 방법

이 문제는 자바스크립트의 기본 배열 메서드 세 가지만 활용하면 아주 간단하게 해결할 수 있습니다.

  1. split(' ') : 문자열을 공백 기준으로 잘라 단어 배열을 만듭니다.
  2. reverse() : 배열 요소들의 순서를 뒤집습니다.
  3. join(' ') : 뒤집힌 배열을 다시 공백으로 연결해 문자열로 만듭니다.

코드 구현

다음은 위 로직을 화살표 함수로 작성한 예제입니다.

const str = 'this is some random string text';

const reverseWords = (str = '') => {
  const strArr = str.split(' ');   // 공백 기준으로 단어 분리
  strArr.reverse();                // 단어 순서 반전
  const reversedStr = strArr.join(' '); // 다시 문자열로 결합
  return reversedStr;
};

console.log(reverseWords(str));

실행 결과

위 코드를 실행하면 콘솔에 아래와 같이 출력됩니다.

text string random some is this

동작 원리 살펴보기

입력된 문자열 'this is some random string text'split(' ')을 통해 ['this', 'is', 'some', 'random', 'string', 'text']라는 배열로 변환됩니다. 이후 reverse() 메서드가 배열 순서를 반전시키고, join(' ')이 각 단어 사이에 공백을 넣어 최종 문자열을 완성합니다.

참고로 매개변수에 기본값 ''(빈 문자열)을 지정해 두었기 때문에, 인자 없이 호출되더라도 오류 없이 안전하게 동작합니다.