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

JavaScript에서 문자열의 인접 단어 교환하기

문자열을 입력받아 문자열 끝에 도달할 때까지 인접한 단어들을 서로 맞바꾸는 JavaScript 함수를 작성해야 합니다. 예를 들어 "A B C D"라는 문자열이 주어지면 "B A D C"처럼 홀수 번째와 짝수 번째 단어의 위치가 서로 교환됩니다.

예제

이를 구현한 코드는 다음과 같습니다.

const str = "This is a sample string only";
const replaceWords = str => {
    return str.split(" ").reduce((acc, val, ind, arr) => {
        if(ind % 2 === 1){
            return acc;
        }
        acc += ((arr[ind+1] || "") + " " + val + " ");
        return acc;
    }, "");
};
console.log(replaceWords(str));

코드 설명

위 코드는 다음과 같은 단계로 동작합니다.

  • split(" "): 문자열을 공백을 기준으로 분리하여 단어 배열을 생성합니다.
  • reduce(): 배열을 순회하면서 교환된 단어들을 하나의 문자열로 누적합니다.
  • ind % 2 === 1: 홀수 인덱스의 단어는 바로 앞 짝수 인덱스 단어와 함께 이미 처리되었으므로 건너뜁니다.
  • (arr[ind+1] || ""): 마지막 단어가 홀수 개일 때 짝이 없는 단어는 빈 문자열로 대체하여 오류 없이 처리합니다.

출력

콘솔에 출력되는 결과는 다음과 같습니다.

is This sample a only string