🔻 JadenCase 문자열 만들기
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고)
문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.입출력 예
s return "3people unFollowed me" "3people Unfollowed Me" "for the last week" "For The Last Week"
👀
map을 써서 첫번째 문자만 toUpperCase를 적용하여 v[0].toUpperCase로 변경하려 했는데 자꾸만 null값이 출력되었다..
배열 안에 string이 원소로 들어있는 경우, 해당 string에 [index]로 접근하려고 하면 자꾸만 에러를 마주쳤다. (네이버 코테에서도 이것 때문에 엄청 헤맨..)
string의 경우 charAt()으로 접근할 수 있다는 사실을 알아서 포스팅한다!
function solution(s) {
// 공백 기준으로 split
let splited = s.split(' ');
let answer = "";
// 이중 for문을 사용해서 변경
splited.forEach(v => {
[...v].forEach((v,index) => {
// 첫번째만 대문자
if (index === 0) answer += v.toUpperCase();
else answer += v.toLowerCase();
})
answer += " ";
})
// 마지막에도 공백이 들어가게 되므로 맨 마지막 공백 slice
return answer.slice(0,answer.length-1);
}
function solution(s) {
return s.split(" ").map(v => v.charAt(0).toUpperCase() + v.substring(1).toLowerCase()).join(" ");
}
charAt() 함수는 문자열에서 특정 인덱스에 위치하는 유니코드 단일문자를 반환한다.
charAt() 안의 수는 0부터 시작하는 index 접근과 같다.
let string = "abcdefg";
console.log(string.charAt(3)); // d
charAt()과 []로 접근할 때의 차이
index값으로 범위를 벗어나는 값이 입력된 경우
charAt()은 빈 문자열을 반환하고, []는 undefinedfmf 반환한다.
let str = "1234567";
console.log(str.charAt(999)); // " "
console.log(str[999]); // undefined