이상한 문자 만들기 (Level 2)
문제
toWeirdCase함수는 문자열 s를 매개변수로 입력받습니다.
문자열 s에 각 단어의 짝수번째 인덱스 문자는 대문자로, 홀수번째 인덱스 문자는 소문자로 바꾼 문자열을 리턴하도록 함수를 완성하세요.
예를 들어 s가 “try hello world”라면 첫 번째 단어는 “TrY”, 두 번째 단어는 “HeLlO”, 세 번째 단어는 “WoRlD”로 바꿔 “TrY HeLlO WoRlD”를 리턴하면 됩니다.
주의 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단합니다.
풀이
function toWeirdCase(s){
let check = s.split(" "), ans = [],val = null;
for (let elem of check) {
val = elem.split("")
for (let i = 0; i < val.length; i++) {
if( i % 2 == 0 ) {
val[i] = val[i].toUpperCase()
} else {
val[i] = val[i].toLowerCase()
}
}
ans.push(val.join(''))
}
return ans.join(" ")
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
console.log("결과 : " + toWeirdCase("try hello world"));
공백을 기준으로 배열로 자르고, 다시 문자열 하나하나 잘라서 인덱스로 홀짝 비교 후 변경 후 조인
다른 사람의 풀이
function toWeirdCase(s){
//함수를 완성해주세요
return s.toUpperCase().replace(/(\w)(\w)/g, function(a){return a[0].toUpperCase()+a[1].toLowerCase();})
}
정규식 한줄로 끝..