code-kata(Week1 - Day2)(TIL)

이해용·2022년 5월 10일
0
post-thumbnail

문제

reverse 함수에 정수인 숫자를 인자로 받습니다. 그 숫자를 뒤집어서 return해주세요.

x: 숫자 return: 뒤집어진 숫자를 반환!

예들 들어, x: 1234 return: 4321

x: -1234 return: -4321

x: 1230 return: 321

풀이

1. 숫자를 문자로 변환

The toString() returns a number as a string.

- 문법

number.toString(radix) => toString()

2. 문자를 배열로 변환

  • 문자를 새로운 배열로 변경하고 원래 문자열로 변경되지 않습니다.

  • (" ") 를 사용할 경우 단어 사이를 분리하며, ("")를 사용할 경우 문자 하나씩 쪼갭니다.

문법

split() => split("")

ex)

let text = "How are you doing today?";
const myArray = text.split(" "); 
console.log(myArray)//[ 'How', 'are', 'you', 'doing', 'today?' ]

3. 배열의 순서를 뒤집는다.

  • reverse() method는 배열 요소 순서를 반대로하며 원래 배열을 덮어씁니다.

문법

array.reverse() => .reverse()

ex)

const fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.reverse();
console.log(fruits); // [ 'Mango', 'Apple', 'Orange', 'Banana' ]

4. 뒤집은 배열을 다시 합친다.

  • join() method는 배열을 문자열로 반환하며 원래 배열로 변화하지 않습니다.
  • 모든 구분 기호를 괄호 안에서 지정할 수 있으며 기본 값은 쉼표(,) 입니다.
  • 만약, 구분기호가 없길 원한다면 ("")로 지정해주면 됩니다.

문법

array.join(separator) => .join("")

5. 합쳐진 문자열을 숫자로 변경한다.

  • parseInt() method는 값을 문자열로 구문 분석하고 첫 번째 정수를 반환합니다.

문법

parseInt(string, radix) => parseInt(값);

  • radix를 지정한다면 아래와 같고 지정하지 않으면 기본 10으로 출력됩니다.
    2 = binary, 8 = octal, 10 = decimal, 16 = hexadecimal.

6. 음수 값이 나올 수 있도록 설정

  • Math.sign() method는 숫자가 음수인지, 양수인지, 0인지를 판단합니다.

문법

Math.sign() => Math.sign(값)

ex)

Math.sign(3);   // 1
Math.sign(0);   // 0
Math.sign(-3);  // -1

최종 결과

const reverse = x => {
  // 여기에 코드를 작성해주세요.
let a = x.toString().split("").reverse().join("");
  let b = parseInt(a) * Math.sign(x);
  return b;
}

하나씩 결과 값을 도출하여 진행하면 편하게 확인할 수 있었다.

let x = -1230;
let a = x.toString(); // '-1230'
let b = x.toString().split(""); // [ '-', '1', '2', '3', '0' ]
let c = x.toString().split("").reverse(); // [ '0', '3', '2', '1', '-' ]
let d = x.toString().split("").reverse().join(""); // '0321-'
let e = parseInt(d); // 321
let f = parseInt(d) * Math.sign(x); // -321

중간에 알게 된점.

  1. parseInt method 대신에 parseFloat method를 사용해도 소수점이 나오지 않기 때문에 사용 가능하다.

ex)

parseFloat(10) // 10
parseFloat(-10) // -10
parseFloat(10.33) // 10.33
  1. Math.sign() 대신에 if문을 사용해서 진행 가능하다.
  if (x < 0 ) {
    return -b;
  } else {
    return b;
  }

출처 및 참고
https://www.w3schools.com/jsref/jsref_tostring_number.asp
https://www.w3schools.com/jsref/jsref_split.asp
https://www.w3schools.com/jsref/jsref_reverse.asp
https://www.w3schools.com/jsref/jsref_parseint.asp
https://www.w3schools.com/jsref/jsref_parsefloat.asp

profile
프론트엔드 개발자입니다.

0개의 댓글