1. 🧐 Expected Output
reverseInt(15) === 51;
reverseInt(981) === 189;
reverseInt(500) === 5;
reverseInt(-15) === -51;
reverseInt(-90) === -9;
2. 🤔 My Solution
function reverseInt(n) {
const arr = n.toString().split('').reverse().filter(el => el !== '-')
const numberArr = []
for (let index = 0; index < arr.length; index++) {
if (arr.length >= 2 && arr[0] === '0'){
arr.shift()
}
numberArr.push(arr[index])
}
const _numberArr = parseInt(numberArr.join(''))
if (n < 0) return -1 * parseInt(_numberArr)
return parseInt(_numberArr)
}
3. 🎊 Best Solution
3-1. First Solution
parseInt() method can handle the string like "001" parseInt() method change "001-" into 1
function reverseInt(n) {
const reversed = n.toString().split('').reverse().join('')
if (n < 0) return parseInt(reversed) * -1
return parseInt(reversed)
}
3-2. Second Solution
- Call
Math.sign() Math.sign(number) returns -1 or 0 or -0 or 1 - if number is negative, Math.sign returns
-1 - if number is positive, Math.sign returns
1 - if number is negative zero, Math.sign returns
-0 - if number is zero, Math.sign returns
0
function reverseInt(n) {
const reversed = n.toString().split('').reverse().join('')
return parseInt(reversed) * Math.sign(n)
}