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

특정 문자로 시작하는 단어만 뒤집기 - JavaScript

문장 문자열과 하나의 문자를 매개변수로 받아, 해당 문자로 시작하는 모든 단어만 뒤집는 JavaScript 함수를 작성해야 합니다.

문제 이해하기

예를 들어, 다음과 같은 문자열이 있다고 가정해 보겠습니다.

const str = 'hello world, how are you';

특정 문자 'h'로 시작하는 단어를 뒤집는다면,

출력 문자열은 다음과 같아야 합니다.

const output = 'olleh world, woh are you';

즉, "h"로 시작하는 단어인 hello와 how만 뒤집고, 나머지 단어들은 원래 그대로 유지하는 것입니다.

구현 코드

다음은 위 문제를 해결하는 전체 코드입니다.

const str = 'hello world, how are you';
const reverseStartingWith = (str, char) => {
    const strArr = str.split(' ');
    return strArr.reduce((acc, val) => {
        if(val[0] !== char){
            acc.push(val);
            return acc;
        };
        acc.push(val.split('').reverse().join(''));
        return acc;
    }, []).join(' ');
};
console.log(reverseStartingWith(str, 'h'));

코드 동작 원리

코드가 어떻게 동작하는지 단계별로 살펴보겠습니다.

  • split(' '): 문자열을 공백을 기준으로 분리하여 각 단어로 이루어진 배열을 만듭니다.
  • reduce(): 배열의 각 단어를 순회하면서 새로운 배열을 누적 생성합니다.
  • val[0] !== char: 단어의 첫 글자가 지정한 문자와 다르면 해당 단어를 그대로 배열에 추가합니다.
  • split('').reverse().join(''): 첫 글자가 지정한 문자와 일치하면 단어를 개별 문자로 분리한 뒤 순서를 반전시키고 다시 하나의 문자열로 합칩니다.
  • join(' '): 처리가 완료된 모든 단어를 공백으로 연결하여 최종 문자열을 반환합니다.

출력 결과

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

olleh world, woh are you