Problem
- Given a number, write a function to output its reverse digits.
- 주어진 숫자의 역수를 출력하는 함수를 작성한다.
- A negative number should still be negative when reversed.
Solution 01
function reverseNumber(n) {
let reverseStr = Math.abs(n).toString().split('').reverse().join('');
let result = +reverseStr;
return n < 0 ? -result : result;
}
reverseNumber(0); // 0
reverseNumber(1000); // 1
reverseNumber(1234); // 4321
reverseNumber(-123); // -321
Math.abs()
: 주어진 숫자의 절대값(absolute value)을 반환한다.
toString()
: 숫자를 문자열로 변환한다.
split()
: 문자열을 부분 문자열로 분할하고, 새 배열로 반환한다.
reverse()
: 배열 내 element의 순서를 반전한다.
join()
: 배열의 모든 element를 결합하고, 새 문자열로 반환한다.
Solution 02
function reverseNumber(n) {
return (n < 0 ? -1 : 1) * Math.abs(n).toString().split('').reverse().join('');
}
reverseNumber(0); // 0
reverseNumber(1000); // 1
reverseNumber(1234); // 4321
reverseNumber(-123); // -321
Solution 03
function reverseNumber(n) {
return (n < 0 ? -1 : 1) * +[...('' + Math.abs(n))].reverse().join('');
}
reverseNumber(0); // 0
reverseNumber(1000); // 1
reverseNumber(1234); // 4321
reverseNumber(-123); // -321
Solution 04
function reverseNumber(n) {
return parseInt((n < 0 ? '-' : '') + Math.abs(n).toString().split('').reverse().join(''));
}
reverseNumber(0); // 0
reverseNumber(1000); // 1
reverseNumber(1234); // 4321
reverseNumber(-123); // -321
parseInt()
: 문자열을 구문 분석하고, 정수를 반환한다.