이번 글에서는 문자열을 입력받아 각 단어의 첫 글자만 대문자로 변환한 새로운 문자열을 반환하는 JavaScript 함수를 작성하는 방법을 알아보겠습니다.
예를 들어, 입력 문자열이 다음과 같다면 −
const str = 'this is some random string';
함수 실행 후 기대되는 출력 결과는 다음과 같습니다.
const output = 'This Is Some Random String';
구현 예제
const str = 'this is some random string';
const capitaliseFirst = (str = '') => {
const strArr = str.split(' ');
const newArr = strArr.map(word => {
const newWord = word[0].toUpperCase() + word.substr(1, word.length - 1);
return newWord;
});
return newArr.join(' ');
};
console.log(capitaliseFirst(str));동작 원리
위 함수는 세 가지 단계로 동작합니다.
- split(' ') : 공백을 기준으로 입력 문자열을 단어 배열로 분리합니다.
- map() : 각 단어의 첫 글자를
toUpperCase()로 대문자로 변환한 뒤,substr(1)로 나머지 부분을 그대로 이어 붙여 새로운 단어를 만듭니다. - join(' ') : 변환된 단어들을 공백으로 다시 연결하여 최종 문자열을 완성합니다.
출력 결과
콘솔에 출력되는 결과는 다음과 같습니다.
This Is Some Random String
참고 사항
substr()은 현재 레거시(Legacy) API로 분류되어 있으므로, 최신 코드에서는 slice(1)을 사용하는 것이 권장됩니다. 즉, word[0].toUpperCase() + word.slice(1)와 같이 작성하면 더 안전하고 간결하게 처리할 수 있습니다.