JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고)
문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
function solution(s) {
const sArr = s.split(' ');
const sResult = [];
sArr.forEach((eachSarr) => {
if(eachSarr === '') {
sResult.push('');
return;
}
const firstCharacter = eachSarr[0];
if(Number.isNaN(Number(firstCharacter))) {
const remainCharacters = eachSarr.substring(1);
sResult.push(`${firstCharacter.toUpperCase()}${remainCharacters.toLowerCase()}`);
} else {
sResult.push(eachSarr.toLowerCase());
}
});
return sResult.join(' ');
}
문제는 자체는 간단하지만 조건이 중요한 문제다. '공백문자가 연속해서 나올 수 있습니다.' 해당 조건에 대한 예외처리를 하지 않으면 String.prototype.substring Method 를 실행하는 과정에서 런타임 에러가 발생할 수 밖에 없다.