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

发布于 2022-09-01 15:32:38 字数 30 浏览 7 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

梦幻的味道 2022-09-08 15:32:38
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

澉约 2022-09-08 15:32:38
既然题主说的是  正数 or  负数 是不是应该考虑0?

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

         return number / Math.abs(number);
    }
软的没边 2022-09-08 15:32:38

function f(n) {

return n > 0 ? 1:-1;

}

还给你自由 2022-09-08 15:32:38

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文