Javascript内联条件:如果不返回0,则返回大于0的返回结果

时间:2018-01-15 12:19:48

标签: javascript ecmascript-6

可以在一行中写这样的东西吗?

let value1 = 10;
let value2 = 20;

let result = ( value1 - value2 ) / ( value1 - 1);
if (result<0)
 result = 0;

像这样(但不必重写公式2次):

let result = ( ( ( value1 - value2 ) / ( value1 - 1) ) < 0 ) ? 0 : ( ( value1 - value2 ) / ( value1 - 1) );

2 个答案:

答案 0 :(得分:3)

您可以将Math.max与零用作另一个参数。

let value1 = 10;
let value2 = 20;
let result = Math.max((value1 - value2) / (value1 - 1), 0);

console.log(result);

答案 1 :(得分:0)

带有Math.max的ans的逻辑很好。

您也可以尝试以下操作:

&#13;
&#13;
var value1 = 10;
var value2 = 20;
var v;
var result = (( v = (( value1 - value2 )/(value1 - 1))) < 0 ) ? 0 : v;

console.log(v);
&#13;
&#13;
&#13;