【问题标题】:is it possible to put a ternary operator inside a switch? Javascript是否可以将三元运算符放在开关内? 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;理想情况下,如果存在,我想连接成一个变量

标签: javascript switch-statement conditional-operator


【解决方案1】:

当然,使用单个问号,不要忘记将结果的第二部分分配给某物:

case "streetName" : entries[0][1] ? entries[0][1] += `, ${value}` : entries[0][1] = value;

【讨论】:

  • 感谢您的回答!这行得通。奇怪的是,我之前使用过三元组,但与 case 语句混合使用,并且不知道是否可以这样做,似乎让我忘记了语法
猜你喜欢
  • 2020-02-20
  • 2019-10-08
  • 2021-10-06
  • 1970-01-01
  • 1970-01-01
  • 2016-10-04
  • 2022-01-04
  • 2014-11-01
  • 2018-10-02
相关资源
最近更新 更多