三元运算符中的三元运算符是否可能

Ven*_*nox 5 javascript conditional-operator node.js

为什么这条线不起作用

        x > highNum ? highNum = x : y > highNum ? highNum = y : highNum = highNum
Run Code Online (Sandbox Code Playgroud)

在这种情况下,这条线处于循环中,并且 x 和 y 每次都不同。我试图在最后找到最高的数字,并认为这会奏效。在我看来,这读作:如果 x 高于 high num highnum 应该被分配 x 的值,否则。你大吗?如果是,y 应该是新的 highnum。如果不。不要改变高数

Ped*_*que 4

简短回答:

是的,他们是。

长答案:

是的,但您也应该关心可读性。您的代码完全符合您的预期,但其他开发人员(也许将来的您)可能会在理解这一点时遇到问题,因此我强烈建议您永远不要使用嵌套三元运算符,并且仅在以下情况下使用它们它比简单的 if else 语句更有意义。如果即使在这之后你仍然想使用它,至少添加一条注释来解释它的作用。前任:

  let highNum
  for(let line of lines){
     const {x, y} = line; 
     // use bubble sort to find the highest number
     x > highNum ? highNum = x : y > highNum ? highNum = y : highNum = highNum
  }
  
Run Code Online (Sandbox Code Playgroud)

编辑:另外,正如“trincot”所说,这也没有正确找到最高的数字