Quiero entender la mejor manera de invertir un número entero (tanto positivo como negativo) en NodeJS 12. ¿Podemos hacer esto sin convertir el número en cadena? También debería admitir números de notación científica como 1e+10, que es 10000000000.
Input/Expected Output 500 = 5 -94 = -49 1234 = 4321 -1 = -1 1e+10 = 1 123.45e+10 = 54321Espero que esta función de una línea resuelva su caso de uso
// The Math.sign() function returns either a positive or negative +/- 1, // indicating the sign of a number passed into the argument. function reverseInt(n) { return parseInt(n.toString().split('').reverse().join('')) * Math.sign(n) } console.log(reverseInt(500)); console.log(reverseInt(-94)); console.log(reverseInt(1234));Esta es la respuesta que se me ocurrió, pero creo que podría haber una mejor manera. No me gustó la forma en que tuve que convertir el número entero en cadena, invertirlo y volver a convertirlo en número entero.
parseInt(Math.sign(num) * parseInt(Math.abs(num).toString().split("").reverse().join("")))function reverseNum(num) { return ( parseFloat( num .toString() .split('') .reverse() .join('') ) * Math.sign(num) ) }