아래 링크의 강의 중 Section 10. Sentence Capitalization
의 내용을 추려 이번 글을 작성하였습니다.
The Coding Interview Bootcamp: Algorithms + Data Structures on Udemy
function capitalize(str) {
const splited = str.split(" ");
let res = [];
for (let char of splited) {
const splitedSubArr = char.split("");
let capitalized = splitedSubArr.shift().toUpperCase();
capitalized = splitedSubArr.unshift(capitalized);
res.push(splitedSubArr.join(""));
}
return res.join(" ");
}
console.log(capitalize("a short sentence"));
str
를 split(" ")
을 사용하여 공백기준으로 나눈다.res
선언.for...of문
돌면서 탐색 문자 char
를 split
해서 subArray를 생성.shift()
로 떼어낸 다음 대문자로 만들고, 다시 subArray의 맨 처음 위치에 넣은 다음 join()
으로 합침.function capitalize(str) {
let words = [];
for (let word of str.split(" ")) {
words.push(word[0].toUpperCase() + word.slice(1));
}
return words.join(" ");
}
console.log(capitalize("look, it is working!"));
words
선언.str
을 split(" ")
을 통해 공백 기준으로 나누어 탐색.word
의 첫 번째 값을 대문자로 바꾼 값과 나머지 값을 합쳐서 배열 words
에 push.words
를 공백 기준으로 합쳐 반환.function capitalize(str) {
// 아래처럼 설정하지 않고 for문 돌면서 왼쪽이 공백일 시 result에 add하는 식으로 짜면 str의 첫째값은 탐색 대상에서 제외되기 때문에 대문자로 반환 안 됨. 따라서 미리 input의 첫째값을 대문자로 설정.
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;
}
console.log(capitalize("look, it is working!"));
result
에 입력값의 첫 글자를 대문자로 미리 설정.for문
작성.str
의 왼쪽 문자가 공백이라면 대문자로 바꾸어 변수 result
에 더하고, 아니라면 그 값을 그대로 더하기.result
반환.