给出一个整数,将这个整数中每位上的数字进行反转,JavaScript编程

一、问题描述:

给出一个整数,将这个整数中每位上的数字进行反转。

示例:输入:123,输出321;输入-123,输出-321;输入120,输出-21

二、问题分析与解决:

需要将给出的整数反转,注意示例中给出的负数和末尾是0的情况。问题比较简单直接上JS代码如下:

JS代码:

//以下代码采用ES6的箭头函数写法
const reverseNum = (num) => {
  if (num >= 0) {
    const numStr = String(num);//将数字转成字符串,方便转成数组
    return Number(numStr.split('').reverse().join(''));//详见注释1
  } else {
    const numStr = String(num);//将数字转成字符串,方便转成数组
    return -numStr.slice(1).split('').reverse().join('');//详见注释2
  }
};

//运行以上代码:
reverseNum(1230);//321
reverseNum(-123);//-321
reverseNum(-1230);//-321

/*
  注释1(以输入数字1230为例):
numStr.split('')//将字符‘123’转成数组['1','2','3','0']
.reverse()//反转数组,得到['0','3','2','1']
.join('')//数组转成字符串'0321'
Number()//最后加将反转后的字符串转为数字得到321
*/

/*
注释2:
与注释1中不同的是先截取字符串numStr的第1位到最后一位,不截取负号,最后反转完后直接用-将反转后的字符串转为负数,得到-321
+、-单独使用表示将其后面的元素转成数字类型,相当于Number()方法,只不过'-'会将后面的元素转化成负数。注意:-0得到-0,+0得到0,不是数字返回NaN如:+undefined //NaN
*/

注意:Number('0123')会自动舍弃首位的0,Number方法和+、-操作默认将参数转为10进制的数字。

如有疑问欢迎留言讨论,谢谢!

(本文为原创博客,严禁非法抄袭或复制,转载请注明出处:https://www.cnblogs.com/xiao-pengyou/