JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고)문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
s | return |
---|---|
"3people unFollowed me" | "3people Unfollowed Me" |
"for the last week" | "For The Last Week" |
파라미터가 String 타입이고 한문장에서 띄어쓰기가 있다.
띄어쓰기 기준으로 나눈 후 앞단어를 대문자로 바꿔야 할 것 같다.
split(" ")
으로 잘라낸 후 test 변수에 할당한다.
let array = [];
let test = s.split(" "); // [ '3people', 'unFollowed', 'me' ]
나눠진 단어를 배열의 길이만큼 반복문을 돌린 후 각 인덱스의 값에 접근한다.
접근 후에 split으로 각 문자열을 한번 더 잘라낸다.
for (let i = 0; i < test.length; i++) {
let str = test[i].split("");
반복문 안에서 test[i] 즉 각 인덱스의 값에 문자열길이만큼 반복문을 돌린다.
조건문을 이용해서 0번째 인덱스는 모두 대문자로 만들고 그외에 값들은 소문자로 되게 if문을 이용했다.
for (let j = 0; j < test[i].length; j++) {
if (j === 0) {
str[j] = str[j].toUpperCase();
} else {
str[j] = str[j].toLowerCase();
}
}
각 문자열 0번째 인덱스는 대문자로 바꼈을 것이다. 이제 이 쪼개진 문자열들을 join('')으로 다시 연결해주자.
array.push(str.join(""));
}
return array.join(" ");
}
function solution(s) {
let array = [];
let test = s.split(" ");
for (let i = 0; i < test.length; i++) {
let str = test[i].split("");
for (let j = 0; j < test[i].length; j++) {
if (j === 0) {
str[j] = str[j].toUpperCase();
} else {
str[j] = str[j].toLowerCase();
}
}
array.push(str.join(""));
}
return array.join(" ");
}