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。如果不。不要改变高数
是的,他们是。
是的,但您也应该关心可读性。您的代码完全符合您的预期,但其他开发人员(也许将来的您)可能会在理解这一点时遇到问题,因此我强烈建议您永远不要使用嵌套三元运算符,并且仅在以下情况下使用它们它比简单的 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”所说,这也没有正确找到最高的数字