我想像下面的代码一样做三元运算,但代码运行不好



当我更改f7值时,它将正确执行,直到第二个条件,但第三个和第四个条件不会触发。我能做什么?请帮我在第二种情况下停止?

var f7 = 5; 
var g7 = (f7 <= 3 ? 100 : (2 <= f7 < 4 ? 75 : (4 <= f7 < 5 ? 60 : (5 <= f7 < 6 ? 40 : 15))));
console.log(g7);

问题在于执行比较的顺序。我喜欢在多行上格式化三元表达式,使其更容易使用,删除不必要的括号,除非它们有助于可读性。

例如

var g7 = f7 <= 3 
? 100 
: 2 <= f7 < 4 
? 75 
: 4 <= f7 < 5 
? 60 
: 5 <= f7 < 6 
? 40 
: 15

这使得第一次比较与第二次比较中测试的值重叠更加清楚。你真的想检查f7<=3,然后检查2<f7<4.

我本以为这会与严格递增的值范围一起使用,没有重叠。

谢谢@cid我的计算完成了2 <= f7 && f7 < 4我用上面的代码做感谢

var g7 = f7 <= 3 ? 100 
: 2 <= f7 && f7 < 4 ? 75 
: 4 <= f7 && f7 < 5 ? 60 
: 5 <= f7 && f7 < 6 ? 40 
: 15;

相关内容

  • 没有找到相关文章

最新更新