안녕하세요. 혀코입니다.
이번 시간에는 문장의 각 단어의 첫글자를 대문자로 바꾸는 방법에 대해서 알아보겠습니다.
function capitalize(str) {
words = [];
words = str.split(' ');
for(let i = 0; i <= words.length - 1; i++) {
words[i] = words[i][0].toUpperCase() + words[i].slice(1);
}
words = words.join(' ');
return words;
}
module.exports = capitalize;
비어있는 배열 words를 만들고, 전달 받은 문자열을 각 단어로 스페이스를 기준으로 잘라서 배열에 저장합니다. 배열을 for loop을 돌려서 각 단어의 첫글자를 대문자로 바꾸고, 단어의 두번째 글자부터 마지막 글자까지 잘라서 붙여 배열의 각 단어를 업데이트해 줍니다. 그리고 join() 메소드를 사용해서 각 단어 사이에 스페이스를 추가해서 문장으로 치환해 줍니다.
코드를 심플하게 정리해 보자면, 다음과 같이 작성할 수 있습니다.
function capitalize(str) {
words = [];
for(let word of str.split(' ')) {
words.push(word[0].toUpperCase() + word.slice(1));
}
return words.join(' ');
}
module.exports = capitalize;
또 다른 방법이 있는데, 배열로 변환하지 않고 문자열 자체에서 대문자로 바꾸는 방법이 있습니다.
function capitalize(str) {
let result = str[0].toUpperCase();
for(let i = 1; i < str.length; i++) {
if(str[i - 1] === ' ') {
result += str[i].toUpperCase();
} else {
result += str[i];
}
}
return result;
}
module.exports = capitalize;
문장의 첫 글자는 무조건 대문자로 바꾸고 나머지 글자는 이전 문자가 스페이스인지 확인해서 대문자로 바꾸는 방법입니다. 이렇게 한 문자씩 for loop을 돌려서 result 문자열에 저장하면 문장에서 각 단어의 첫글자를 대문자로 바꿀 수 있습니다.
이렇게 문장의 각 단어의 첫글자를 대문자로 바꾸는 방법에 대해서 알아봤습니다.
유용하셨다면, 공감과 구독 부탁 드립니다.
감사합니다.
댓글