前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js整数翻转

js整数翻转

原创
作者头像
剁椒鱼鳞
修改2023-06-26 18:30:41
1900
修改2023-06-26 18:30:41
举报
文章被收录于专栏:前端小学生前端小学生

分析:

  1. 将number转为string/array,然后进行翻转,问题不大
  2. 如果是负数,如:-123,翻转之后应该是-321,而不是321-
  3. 如果是尾数是0,翻转之后应该去掉,如:520,翻转之后应该是25,而非025,当然,这块在程序会自行处理的,一般不用自己考虑
  4. 翻转之后如果数字不在 [−2³¹, 231 − 1] 范围内,应该返回0

上代码:

代码语言:javascript
复制
function numReverse(num) {
    if (typeof num !== 'number' || isNaN(num)) {
        throw '类型不对';
    }
    const isPositiveNum = num >= 0 ? true : false;
    let str = isPositiveNum ? String(num) : String(num).slice(1);
    let newStr = '';
    for (let index = str.length - 1; index >= 0; index--) {
        newStr = newStr + str[index];
    }
    // Math.pow(2, 31) - 1 ➡️ 2147483647
    // Math.pow(-2, 31) ➡️ -2147483648
    if((parseFloat(newStr) > 2147483647) || (parseFloat(newStr) < -2147483648)) {
        return 0;
    }
    return isPositiveNum ? `${ newStr * 1 }` : `-${ newStr * 1 }`;
}

测试:

代码语言:javascript
复制
console.log('520:', numReverse(520)); // 52
console.log('21474836478:', numReverse(21474836478)); // 0
console.log('-123:', numReverse(-123)); // -321
console.log('456:', numReverse(456)); // 654
console.log('-12.34:', numReverse(12.34)); // -43.21

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档