方法1:

前提:parseInt() 函数

  1. parseInt() 函数可解析一个字符串,并返回一个整数。
    <script>
       var x = -4893;
        var reverse = function (x) {
          //声明一个存放结果的数组
            var resultArr = [];
          //将传入的参数转换为字符串
            var intToStr = x.toString();
            for (var i =0; i<intToStr.length; i++) {
             //将该字符串遍历并反转存入数组中
                resultArr.unshift(intToStr[i]);
            }
          //当传入的参数为负数时
            if (intToStr[0] == "-") {
              //给结果也添加一个符号
                resultArr.unshift("-");
            }
            // resultArr.push(intToStr[0]);
             //将结果转换为整数形式
            var resultNum = parseInt(resultArr.join(""));
          //超出范围则返回0
            if (resultNum <= Math.pow(-2, 31) || resultNum >= Math.pow(2, 31) - 1) {
                return 0;
            }
          //将处理完之和的结果返回到函数外部
            return resultNum;
        };
    console.log(reverse(x));

    </script>

方法2:

var reverse = function(x) {
    if(x == 0){
        return 0;
    }

    //转换成字符串数组
    var array = x.toString().split('');
    var res, num;
    if(array[0] <= '9' && array[0] >= '0'){
        res = array.reverse();
        while(res[0] == '0'){
            //弹出一个
            res.shift();
        }
        num = parseInt(res.join(''));
    }
    //是负数
    else{
        //取出原数组的后面部分
        var t = array.splice(1).reverse();

        while(t[0] == '0'){
            //弹出一个
            t.shift();
        }
        t.unshift('-');
        num = parseInt(t.join(''));
    }
    if(num > 2147483647 || num < -2147483648){
        num = 0;
    }
    return num;
};