-
[TIL]Day 22. Code Kata 내용 정리(201006)IT 지식 2020. 10. 6. 11:25728x90
이번 포스팅은 Code Kate에 대한 내용을 정리해보도록 하겠습니다.
* 문제
reverse 함수에 정수인 숫자를 인자로 받습니다.
그 숫자를 뒤집어서 return해주세요.
x: 숫자
return: 뒤집어진 숫자를 반환!
예를 들어,
x: 1234 return: 4321
x: -1234 return: -4321
x: 1230 return: 321
더보기해결책:
Number형태의 자료형은 그 단일 문자를 split 할 수 없기 때문에, 우선 각각의 숫자들을 구분하기 위해 string 자료형으로 바꿔줘야 합니다.
그 후 string화 된 자료형을 split 메소드를 이용하여 각각의 구분된 배열로 바꾼 후 ->
reverse 메소드를 이용하여 배열의 순서를 바꾸고 ->
join 메소드를 이용하여 각각의 문자열을 하나로 합쳐줍니다. ->
마지막으로 문자열 형태로 되어 있는 숫자들을 Number 메소드를 이용하여 숫자로 변환합니다.
*주의!
음수의 경우에는 문자열로 변환했을 때, - 부호를 포함한 채로 Number로 변환하려 한다면 배열의 맨 마지막에 - 부호가 존재하기 때문에 해당 문자열은 Number가 될 수 없습니다(NaN이 return 됩니다). 따라서 음수를 양수로 바꿔준 후에 같은 방법을 진행하고 마지막에 다시 음수로 바꿔주는 과정이 필요합니다.
const reverse = x => { if (x > 0) { x = x + ""; return Number(x.split("").reverse().join("")); } x = -x x = x + "" let reverseNumber = Number(x.split("").reverse().join("")); return -reverseNumber; } console.log(reverse(1234)); //return 4321 console.log(reverse(-1234)); //return -4321
*split 메소드 주의사항(from MDN 문서): 구분자로 빈 문자열("")을 제공하면, 사용자가 인식하는 문자 하나(grapheme cluster) 또는 유니코드 문자(코드포인트) 하나씩으로 나누는 것이 아니라, UTF-16 코드유닛으로 나누게 되며 써로게이트 페어surrogate pair가 망가질 수 있습니다. 스택 오버플로우의 How do you get a string to a character array in JavaScript? 질문도 참고해 보세요.
728x90'IT 지식' 카테고리의 다른 글
[TIL]Day 24. map, reduce 메소드에 관하여 in javascript (0) 2020.10.13 [TIL]Day 23. 마크다운에 대하여 (0) 2020.10.08 [TIL]Day 21. for/in 을 사용하면 안되는 이유!!!(in JS) (0) 2020.10.05 [TIL]Day 20. 리액트(React)란? (0) 2020.10.04 [TIL]Day 19. 문자 인코딩이란? (0) 2020.09.29