方法1:
前提:parseInt() 函数
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;
};