😊
JadenCase 만들기 JS [Lv2]
October 02, 2022
1. 문제소개
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고) 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
2. 문제풀이
문자열 -> 배열 후에 조건에 맞추어 출력합니다.
(문제는 JadenCase만들기 인데 왜 제목은 JadenCase가 아니지…?)
3. 코드
function solution(s) {
let senceArray = s.split("");
const sentence = senceArray
.map((char, index) => {
if (index === 0) {
return char.toUpperCase();
} else if (senceArray[index - 1] === " ") {
return char.toUpperCase();
} else {
return char.toLowerCase();
}
})
.join("");
return sentence;
}
4. 정리!
신규 아이디 추천 문제에서 사용한 toLowerCase()의 반대 버전인 toUpperCase()를 각 원소별로 사용합니다.
+) 다른 분의 풀이
function solution(s) {
return s
.split(" ")
.map((v) => v.charAt(0).toUpperCase() + v.substring(1).toLowerCase())
.join(" ");
}
- 입력받은 문자열을 공백을 기준으로 나누어 배열로 만들어 준다.
- 배열로 나누어진 각 원소들의 첫문자는 toUpperCase 를 통해서 대문자로 만들어준뒤 나머지 문자들을 첫 원소를 제외하고 모두 toLowerCase를 사용합니다.
- subString(1)이란?
1번째를 시작점으로 문자열의 끝까지를 return 합니다 이 경우 v전체중 첫번째 원소를 제외한 문자열 전체를 return 하는것으로 확인할 수 있습니다.
일반적으로 slice, substr , subString이 비슷한 기능을 하는것으로 확인할 수 있으며 여기서는 간단하게 해당 원소로 들어가는 인자들을 기준으로 a 부터 b 까지 문자열만을 return한다고 생각하면 됩니다. 단순히 인자가 하나만 있다면 그 지점을 시작으로 문자열의 끝까지를 리턴합니다. 즉 a 는 해당 인자, b는 문자열의 끝지점을 바라봅니다.
Reference
아직 배움의 단계라 정확한 정보가 아닐 수 있습니다.😂
피드백은 seoungin1228@gmail.com 으로 부탁드리겠습니다☺️