[codekata]Week1_Day2

문제

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

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

예들 들어, x: 1234 return: 4321

x: -1234 return: -4321

x: 1230 return: 321


풀이

  1. toString() -> 정수를 문자열 변환
  2. split(" ") -> 문자가 된 숫자들을 각각 배열에 담아 반환
  3. reverse() -> 배열에 담긴 숫자들의 순서를 뒤집어서 반환
  4. 음수를 인자로 받았을 경우 순서를 뒤집으면 "-"기호가 숫자의 맨 뒤로 오기때문에 pop()으로 제거 후 unshift("-")로 맨 앞에 붙여줘야 함
  5. 0으로 끝나는 숫자를 인자로 받았을 경우(ex. 1230) 순서를 뒤집으면 0이 숫자의 맨 앞에 오기 때문에 shift()로 0을 제거 후 반환해야 함
    👉 배열 안에 0이 있었는지 검사할 때 includes()메서드 안에 "0"을 넣으면 오류 발생 -> 인자로 받은 정수 안에 0이 포함되어있었다면 문자열로 변환하는 과정에서 빈 문자열이 되므로 includes()에 빈 문자열로 검사해야함
  6. join(" ") -> 배열에 담긴 숫자를 정수 형태로 반환


const reverse = x => {
  // 여기에 코드를 작성해주세요.

  let arr = x.toString().split("").reverse();

  if (arr.includes("-")) {
    arr.pop();
    arr.unshift("-");
  } 

  if(arr.includes("")) {
    arr.shift();
  }

  return Number(arr.join(""));
}


참고

Number.prototype.toString() The toString() method returns a string representing the specified Number object.

String.prototype.split() The split() method divides a String into an ordered list of substrings, puts these substrings into an array, and returns the array. The division is done by searching for a pattern; where the pattern is provided as the first parameter in the method's call.

Array.prototype.reverse() The reverse() method reverses an array in place. The first array element becomes the last, and the last array element becomes the first.

Array.prototype.includes() The includes() method determines whether an array includes a certain value among its entries, returning true or false as appropriate.

Array.prototype.join() The join() method creates and returns a new string by concatenating all of the elements in an array (or an array-like object), separated by commas or a specified separator string. If the array has only one item, then that item will be returned without using the separator.