split(' ')
if
toUpperCase()
substring(1)
+
join(' ')
해서 returnfunction letterCapitalize(str) {
let arr = str.split(' ');
let result = [];
for (let i = 0; i < arr.length ; i++) {
if (arr[i].length === 0) {
result[i] = arr[i]
} else {
result[i] = arr[i][0].toUpperCase() + arr[i].substring(1);
}
}
return result.join(' ')
}
테스트를 통과하고 나서 레퍼런스 코드를 보니 여기서는 새로운 결과 배열을 선언해주지 않았다. 배열은 변형이 가능하기 때문에 조건에 해당하는(배열 안의 단어의 길이가 0보다 큰) 요소만 변형하는 것이 가능 하다. 이렇게 작성하니까 코드가 훨씬 간결해진다.
function letterCapitalize(str) {
let arr = str.split(' ');
for (let i = 0; i < arr.length ; i++) {
if (arr[i].length > 0) {
arr[i] = arr[i][0].toUpperCase() + arr[i].substring(1);
}
}
str = arr.join(' ')
return str
}
string 메서드들을 복습했다. JavaScript의 문자열은 불변(Immutable)하므로 원본 문자열에는 영향을 주지 않는다.
str.toUpperCase()
str.substr(start[, length])
str.substring(indexStart[, indexEnd])
str.slice(beginIndex[, endIndex])