Convert string to camel case ( 5 kyu )
문제
Complete the method/function so that it converts dash/underscore delimited words into camel casing. The first word within the output should be capitalized only if the original word was capitalized.
Examples:
// returns "theStealthWarrior"
toCamelCase("the-stealth-warrior")
// returns "TheStealthWarrior"
toCamelCase("The_Stealth_Warrior")
풀이
function toCamelCase(str){
while ( str.indexOf('-') !== -1 ) {
str = str.slice(0, str.indexOf('-')) + str[str.indexOf('-')+1].toUpperCase() + str.slice(str.indexOf('-')+2, str.length)
}
while ( str.indexOf('_') !== -1 ) {
str = str.slice(0, str.indexOf('_')) + str[str.indexOf('_')+1].toUpperCase() + str.slice(str.indexOf('_')+2, str.length)
}
return str
}
while문으로 와 -가 없어질때까지 반복문을 돌면서 를 지우고 _다음 단어를 대문자로 변경해서 리턴
다른 사람의 풀이
function toCamelCase(str){
return str.replace(/[-_](.)/g, (_, c) => c.toUpperCase());
}
정규식으로 될거같았는데 익숙하지 않아서 고민하다가 결국 못했는데, 이렇게 쓰면 되는군