// 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 // 如果反转后整数超过 32 位的有符号整数的范围 [−2^31, 2^31 − 1] ,就返回 0。 // 假设环境不允许存储 64 位整数(有符号或无符号)。
/** * @param {number} x * @return {number} */ var reverse = function(x) { let rev = 0; while (x !== 0) { const digit = x % 10; x = ~~(x / 10); rev = rev * 10 + digit; if (rev < Math.pow(-2, 31) || rev > Math.pow(2, 31) - 1) { return 0; } } return rev; };
方法二:转为字符串->数组,然后用数组的reverse
var reverse = function(x) { let d = Array.from((Number(x)+'')); let minus = false; if(d[0] == '-'){ d.shift(); minus = true; } let str = (minus?'-':'')+d.reverse().join(''); let rev = Number(str); if (rev < Math.pow(-2, 31) || rev > Math.pow(2, 31) - 1) { return 0; } return rev; }