JadenCase 문자열 만들기

2020.07.31

const isLowerCase = (char) => char.toLowerCase() == char;

const isNum = (char) => !isNaN(parseInt(char));

const mapHelper = (word) => {
  if (!word) {
    return;
  }
  const firstLetter = word[0];
  if (isNum(firstLetter)) {
    return word.toLowerCase();
  }
  if (isLowerCase(firstLetter)) {
    return firstLetter.toUpperCase() + word.slice(1).toLowerCase();
  }
  return firstLetter + word.slice(1).toLowerCase();
};

const solution = (s) => {
  return s.split(" ").map(mapHelper).join(" ");
};
  • 공백 문자 여러개 예외처리를 내가 실전에서 생각해낼 수 있을지 모르겠다.

  • 아 숫자에는 toUpperCase, toLowerCase가 영향을 안 미치니까 굳이 숫자를 구분해줄 이유가 없네;;

const mapHelper = (word) => {
  if (word) {
    return word[0].toUpperCase() + word.slice(1).toLowerCase();
  }
};

const solution = (s) => {
  return s.split(" ").map(mapHelper).join(" ");
};
  • 공백이 여러 개 겹쳐서 빈 문자열이 들어올 때는 toLowerCase와 같은 메소드가 에러를 뱉기 때문에 그거에 대한 예외처리가 힘들었다

  • mapHelper가 undefined를 뱉어도 빈 문자열로 받아들이는구나...
    (x같은 자스)

0개의 댓글