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

JavaScript에서 문자열로부터 약어(Acronym)를 생성하여 반환하는 방법

문제 이해하기

JavaScript에서 문자열을 유일한 인수로 받아, 해당 문자열로부터 약어(두문자어)를 생성해 반환하는 함수를 작성해 보겠습니다.

여기서 핵심 조건은, 약어를 구성할 때 대문자로 시작하는 단어만 고려한다는 점입니다. 즉, 소문자로 시작하는 단어는 약어 생성 과정에서 제외됩니다.

예시

입력 문자열이 다음과 같다면,

const str = 'Polar Satellite Launch Vehicle';

기대되는 출력 결과는 다음과 같습니다.

const output = 'PSLV';

구현 코드

이를 구현한 코드는 아래와 같습니다.

const str = 'Polar Satellite Launch Vehicle';
const buildAcronym = (str = '') => {
   const strArr = str.split(' ');
   let res = '';
   strArr.forEach(el => {
      const [char] = el;
      if(char === char.toUpperCase() && char !== char.toLowerCase()){
         res += char;
    };
  });
  return res;
};
console.log(buildAcronym(str));
console.log(buildAcronym('Bachelor of Science'));

코드 동작 원리

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

  • str.split(' '): 공백을 기준으로 문자열을 분리해 각 단어로 이루어진 배열을 만듭니다.
  • const [char] = el;: 구조 분해 할당(Destructuring)을 활용해 각 단어의 첫 번째 글자만 손쉽게 추출합니다.
  • char === char.toUpperCase() && char !== char.toLowerCase(): 해당 글자가 실제 대문자 알파벳인지 확인합니다. 숫자나 특수문자는 대소문자 변환을 해도 값이 그대로 유지되므로, 두 가지 조건을 모두 검사해야 정확하게 걸러낼 수 있습니다.
  • 조건을 통과한 글자는 결과 문자열 res에 차례대로 추가되어 최종적으로 약어가 완성됩니다.

실행 결과

위 코드를 실행하면 콘솔에 다음과 같은 출력이 나타납니다.

PSLV
BS