可能是重复的问题:
在javascript中使用Number.sign()
给定一个数字变量,如何最简单地确定它的符号?
我不断地得到这样的代码:
var direction = (vector[0] > 0) ? 1: (vector[0] < 0) ? -1: 0;
当我想要的是:如果数字为负数,则输出-1,如果为正数,则输出1,如果为0,则输出0时,似乎不太优雅。
所谓“最简单”,实际上指的是优美或者输入较少的方式。
或者,也许有一种方法可以绝对地增加一个值。例如,如果数字为负数,则从中减去1;如果数字为正数,则将其中加1。Math.abs()提供了绝对值,但是一旦运行Math.abs()后,就没有办法将其转换回有符号的数字。
Math.sign()
:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sign但是由于实现方式,它有一个不幸的边缘情况:Math.sign(-0) === Math.sign(+0)
。 - johncip