一、问题描述:
给出一个整数,将这个整数中每位上的数字进行反转。
示例:输入: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/)