javascript - 如何快速地把正数转换成1,负数转换成-1?
巴扎黑
巴扎黑 2017-04-10 15:33:13
[JavaScript讨论组]

如何快速地把正数转换成1,负数转换成-1?

巴扎黑
巴扎黑

全部回复(4)
高洛峰
javascriptfunction f1(n) {
    return n === 0 ? 0 : n > 0 ? 1 : -1;
}
javascriptfunction f2(n) {
    return n === 0 ? 0 : n / Math.abs(n);
}
javascriptfunction f3(n) {
    return n === 0 ? 0 : ~~n.toString().replace(/(-?).*/, "$11")
}

注意: 由于非0 除以 0 是 Infinity-Infinity,而这两个值不会被判 false,所以下面的 f2_ex 就不对了,留下在这里作为警示。

javascriptfunction f2_ex(n) {
   // not correct while n is a non-zero number
   return n / Math.abs(n) || 0
}

@bf 補充:

nodejs 參考值:運行 1000000 次,

f1: 10ms
f2: 1ms
f3: 402ms

f2_ex: 417ms

伊谢尔伦
既然题主说的是  正数 or  负数 是不是应该考虑0?

    function f1(number){
         if(+number){
             throw new TypeError('只接受number 并且是大于0 or 小于0);
         }

         return number / Math.abs(number);
    }
迷茫

function f(n) {
return n < 2*n ? 1:-1;
}

PHP中文网

if 整数,then 转换为 1
if 负数,then 转换为 -1
那么问题来了,负整数转换为 1 还是 -1 呢?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号