Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何解释复杂的三元运算符?_Javascript_If Statement_Syntax_Conditional Statements - Fatal编程技术网

Javascript 如何解释复杂的三元运算符?

Javascript 如何解释复杂的三元运算符?,javascript,if-statement,syntax,conditional-statements,Javascript,If Statement,Syntax,Conditional Statements,我有这种情况: con1 ? (con2 || con3) ? "blue" : "white" : "green" 这是该代码的正确解释吗 if con1 = true , then "blue" if con1 = false, then "white" if con2 || con3 = true, then "green" ? 说明: 条件相当于: con1 ? ( (con2 || con3) ? "blue" : "white" ) : "green" 就像: conditi

我有这种情况:

con1 ?  (con2 || con3) ? "blue" : "white" : "green"
这是该代码的正确解释吗

if con1 = true , then "blue"
if con1 = false, then "white"
if con2 || con3 = true, then "green"
?
说明:

条件相当于:

con1 ? ( (con2 || con3) ? "blue" : "white" ) : "green"
就像:

condition ? expr1 : expr2 
如果条件为true,则执行expr1 else expr2

因此,如果con1为真,它将计算:con2 | | con3?蓝色:白色,否则返回绿色

斯科特评论后更新:

首先是条件con2 | | con3?蓝色:计算白色,然后根据返回的值计算con1?[从con2 | | con3?蓝色:白色返回的值]:绿色

con1 ? [ (con2 || con3) ? "blue" : "white" ] : "green"
条件?条件为真时返回值:条件为假时返回值

您在true部分中有一个嵌套的三元运算符,因此您的代码:

con1 ?  (con2 || con3) ? "blue" : "white" : "green"
可以被认为是这样分组的:

con1 ? [ (con2 || con3) ? "blue" : "white" ] : "green"
因此,首先计算嵌套零件:

(con2 || con3) ? "blue" : "white"
如果con2或con3为真,则返回蓝色 如果不是,则返回白色

然后将蓝色或白色放置在整体表达式中嵌套三元的位置:

con1 ?  "blue" or "white" : "green"
现在,如果con1为真,则返回蓝色或白色,无论是从嵌套三元数返回的


如果没有,则返回绿色。

谢谢AJ!我用鼠标单击来突出显示节点。现在我的问题是:con2和con3总是共享相同的颜色,我如何用一行代码重写代码,使它们得到不同的颜色?con1?con2?con3?蓝色:白色:红色:绿色这个怎么样?@DerickKolln最后一个在语法上不正确。@DerickKolln:根据con1、con2和con3的值应该得到什么样的确切条件?@DerickKolln如果你想设置各种颜色,您可以将颜色存储在数组中,然后使用可以根据其他条件更改的索引,用对数组成员的引用替换表达式中的颜色名称。@AJ con1使用数组上的include方法检查节点是否是数组的一部分。con2是起始节点,con3是结束节点。代码使用第一种颜色突出显示开始节点和结束节点,这两个节点之间的节点使用第二种颜色,其余节点使用第三种颜色……我的目标是为开始节点和结束节点提供不同的颜色。您是想理解在某个地方找到的语句,还是创建自己的语句以实现自己的结果?在这些情况下,答案将非常不同。如果您试图实现某些特定目标,请更新以添加您想要的描述。谢谢scott…我想发布我的代码,但我总是无法粘贴代码块,但我仍然不清楚你是想从野外找到的代码中学习,还是想写这些代码来完成你想完成的任务。。。如果我们接受这不是家庭作业,而是您编写的代码,那么为什么您要编写自己不理解、无法解析的代码?如果你不理解这些东西,就写下你确实理解的if-then-else语句。