是否可以将三元运算符放在开关内? Javascript
Posted
技术标签:
【中文标题】是否可以将三元运算符放在开关内? Javascript【英文标题】:is it possible to put a ternary operator inside a switch? Javascript 【发布时间】:2021-12-12 17:44:39 【问题描述】:是否可以在 switch 语句中放置三元运算符?
类似这样的东西(不起作用):
case "streetName" : entries[0][1] ?? entries[0][1] += `, $value` : value;
【问题讨论】:
你正在混合Ternary
(?
+ :
) 和Nullish coalescing
(??
)。
另外,无论你在做什么,你可能都不应该这样做。三元应该用于简单的分配。您正试图在其中增加一个值。这只是令人困惑和不必要的。
使用正确的语法是可能的。但仅仅因为某事是可能的,并不意味着它应该去做。
从技术上讲,您可以在任何允许使用表达式的地方使用三元运算符,包括在switch
括号内和作为case
值,而不仅仅是在case 语句中。你所说的“不工作”与使用三元无关。
前面的案例是:case "streetNumber" : entries[0][1] = value;理想情况下,如果存在,我想连接成一个变量
【参考方案1】:
当然,使用单个问号,不要忘记将结果的第二部分分配给某物:
case "streetName" : entries[0][1] ? entries[0][1] += `, $value` : entries[0][1] = value;
【讨论】:
感谢您的回答!这行得通。奇怪的是,我之前使用过三元组,但与 case 语句混合使用,并且不知道是否可以这样做,似乎让我忘记了语法以上是关于是否可以将三元运算符放在开关内? Javascript的主要内容,如果未能解决你的问题,请参考以下文章