我有一个问题想要解决。 只要 x 为正,该表达式就有效
x > 0 ? x - y : x + y;
当它变为负值时,这就是问题开始的地方。 所以我想到了
x !=0 & x < 0 ? x - y : Math.abs(x - y)*-1)
但这让我无处可去,我通过以下方式解决了它:
if (x > 0 && x - y > 0) {
x -= y;
} else if (x < 0 && x + y > 0) {
x += y;
} else {
x = 0;
}
然而这很长并且看起来不优雅。 有什么办法可以通过三元运算使这个过程更短、更高效吗?
最佳答案
x = x >=0 ? x - y : x + y;
x = x < 0 ? 0 : x;
或
x = Math.max(x >= 0 ? x - y : x + y, 0);
关于javascript - 三元运算的值范围在负值和正值范围内直到 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9685499/