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());
}

정규식으로 될거같았는데 익숙하지 않아서 고민하다가 결국 못했는데, 이렇게 쓰면 되는군


'자료구조, 알고리즘 > Codewars 문제' 카테고리의 다른 글

Is a number prime? ( 6 kyu )  (0) 2017.12.06
Create Phone Number ( 6 kyu )  (0) 2017.12.06
Human Readable Time ( 5 kyu )  (0) 2017.12.05
Simple Pig Latin ( 5 kyu )  (0) 2017.12.05
Valid Parentheses ( 5 kyu )  (0) 2017.12.05

+ Recent posts