我没有找到这个问题的更好的名字...
我想检查两个数字是否都小于0,都为0还是都大于0。 有比这更简单的方法吗?
if (nr0 < 0 && nr1 < 0 || nr0 == 0 && nr1 == 0 || nr0 > 0 && nr1 > 0) {
//do smth...
}
答案 0 :(得分:8)
为便于阅读和简化,我建议:
if (Math.sign(nr0) == Math.sign(nr1)) {
//...
}
来自MDN:
如果参数为正数,负数,正零或负零,则[
Math.sign
]将分别返回1,-1、0或-0。否则,将返回NaN。
答案 1 :(得分:3)
您可以将数字相乘,并检查相乘应为正(这将同时覆盖负数和正数)或它们应相等(将覆盖0的情况)
if(nr1*nr2 > 0 || (nr1 === nr2)){
console.log("On the same side of number scale");
}
答案 2 :(得分:1)
一种方法是:
if ( nr0 * nr1 > 0 || (nr0 == 0 && nr1 == 0)) {
// do sth...
}