프로그래머스 lev2 - JadenCase 문자열 만들기
function solution(s) {
s=s.split(' ');
let ans = Array.from({length:s.length}, ()=>'');
for (let i=0; i<s.length; i++) {
for (let j=0; j<s[i].length; j++) {
if (j==0) {
ans[i] += s[i][j].toUpperCase();
}
else {
ans[i] += s[i][j].toLowerCase();
}
}
}
return ans.join(' ');
}
console.log(solution("3people unFollowed me"));
문제에서 s는 알파벳과 공백문자(" ")로 이루어져 있으므로 테스트케이스 중 연속된 공백이 있을 수 있다. 이때 단순히 공백을 기준으로 split하게 되면 '빈 문자열'이 요소로 있는 경우가 생기고 이때 해당 요소를 배열 index로 접근할 경우 undefined로 반환하므로 toUpperCase()에서 런타임 에러가 발생한다.
function solution(s) {
return s.split(" ").map(word => {
if (word === "") return;
return word[0].toUpperCase() + word.substring(1).toLowerCase();
}).join(" ");
} // 앞뒤 공백 예외처리 추가하면 된다.
function solution(s) {
return s.split(" ").map(v => v.charAt(0).toUpperCase() + v.substring(1).toLowerCase()).join(" ");
}