TIL _ Code Kata _ reverse(), join(), parseFloat()

옥원철·2021년 10월 19일
0

Javascript

목록 보기
11/17
post-thumbnail
post-custom-banner

❓문제

  • 정수인 숫자를 인자로 받았을 때, 그 숫자를 뒤집어서 반환하는 함수 작성
  • 예를 들어
    1234를 입력했을 때 -4321을 반환
    1230을 입력했을 때 321을 반환
const reverse = (x) => { }


1. 해결 방안


  • 사고 과정

🔓 (문제 파악) 인자로 받은 숫자를 뒤집어야 한다.
🔑 (해결 방안) 먼저 숫자를 배열로 변환한 뒤, 배열의 순서를 뒤집는다.


🔓 (문제 파악) 숫자를 배열로 변환해야 한다.
🔑 (해결 방안)

1. 숫자를 먼저 문자열로 변환한 뒤 → String() 생성자를 활용

const numIntoString = String(x);
  1. 문자열을 배열로 변환한다 → String.split() 메소드를 활용
const stringIntoArr = numIntoString.split('')
/* string.split(seperator) → seperater가 빈 문자열('')일 경우,
   string의 모든 문자를 원소로 가지는 배열을 반환 */

🔓 (문제 파악) 변환된 배열의 순서를 뒤집어야 한다.
🔑 (해결 방안) Array.reverse() 메소드를 활용하되,
                         x가 음수일 경우에는 '-' 요소를 배열의 맨 앞으로 이동시켜야 함
                         → 음수가 입력되었을 때, 음수를 반환하기 위함

const reverseArr = stringIntoArr.reverse();
if(x < 0) {
  reverseArr.pop(); // 배열의 맨 마지막 요소를 제거하고
  reverseArr.unshift('-') // 배열의 첫 부분에 '-' 요소를 추가
}

🔓 (문제 파악) 뒤집은 배열을 다시 숫자로 변환한다.
🔑 (해결 방안)

1. 배열을 먼저 문자열로 변환한 뒤 → Array.join() 메소드를 활용

const joinedNumArr = reverseArr.join('');
/* Array.join(seperator) → seperator가 빈 문자열('')일 경우,
   array의 모든 요소들 사이에 아무 문자 없이 연결하여 반환함 */
  1. 문자열을 숫자로 변환하여 반환한다 → parseFloat() 함수를 활용
return parseFloat(joinedNumArr);


2. 결과


const reverse = (x) => {
  if (x < 0) {
    const arr = String(x).split('').reverse();
    arr.pop();
    arr.unshift('-');
    return parseFloat(arr.join(''));
  } else {
    return parseFloat(String(x).split('').reverse().join(''));
  }
};

console.log(-123400) // -4321



"작성 내용 중 오류나 오타가 있다면, 댓글로 알려주시면 감사하겠습니다. 주니어 개발자에게 남겨주시는 작은 피드백이 큰 도움이 될 것 같습니다. 고맙습니다 :)"

profile
Obtainment Of The Day
post-custom-banner

0개의 댓글