【问题标题】:How to change this if statement into a Ternary operator? [duplicate]如何将此 if 语句更改为三元运算符? [复制]
【发布时间】:2020-09-23 19:01:42
【问题描述】:

我想把这个 if 语句变成三元运算符。

if (
  (Vi_TDO1 != "TD") && 
  (Vi_TDO2 != "TD") && 
  (Vi_TDO3 != "TD") && 
  (Vi_TDO4 != "TD") && 
  (Vi_TDO5 != "TD") && 
  (Vi_TDO6 != "TD") && 
  (Vi_TDO7 != "TD") && 
  (Vi_TDO8 != "TD") && 
  (Vi_TDO9 != "TD") && 
  (Vi_TD10 != "TD") && 
  (Vi_TD11 != "TD") && 
  (Vi_TD12 != "TD")) {
  Opt_TDTD = "NO";
} else {
  Opt_TDTD = "YES";
}

【问题讨论】:

  • 经验法则:积极提问
  • 你如何填充这个变量Vi_TDO + n?
  • @NinaScholz 我也在想 [...window.Vi_TD .....]
  • 创建一个数组并在其上使用includesOpt_TDTD = [Vi_TDO1, Vi_TD02, ..., Vi_TD12].includes("TD") ? "YES" : "NO"

标签: javascript


【解决方案1】:

那就是

Opt_TDTD = (Vi_TDO1 != "TD") && (Vi_TDO2 != "TD") && (Vi_TDO3 != "TD") && (Vi_TDO4 != "TD") && (Vi_TDO5 != "TD") && (Vi_TDO6 != "TD") && (Vi_TDO7 != "TD") && (Vi_TDO8 != "TD") && (Vi_TDO9 != "TD") && (Vi_TD10 != "TD") && (Vi_TD11 != "TD") && (Vi_TD12 != "TD")
    ? "NO" : "YES"

【讨论】:

    【解决方案2】:

    也许您可以为变量检查想一个更简单的解决方案^^

    但这里是解决方案:

    const result = ((Vi_TDO1 != "TD") && (Vi_TDO2 != "TD") && (Vi_TDO3 != "TD") && (Vi_TDO4 != "TD") && (Vi_TDO5 != "TD") && (Vi_TDO6 != "TD") && (Vi_TDO7 != "TD") && (Vi_TDO8 != "TD") && (Vi_TDO9 != "TD") && (Vi_TD10 != "TD") && (Vi_TD11 != "TD") && (Vi_TD12 != "TD")) ? "NO" : "YES";
    

    【讨论】:

      【解决方案3】:

      每个都可以使用数组

      Opt_TDTD = [Vi_TDO1, Vi_TDO2, Vi_TDO3, Vi_TDO4, Vi_TDO5, Vi_TDO6,
                  Vi_TDO7, Vi_TDO8, Vi_TDO9, Vi_TD10, Vi_TD11, Vi_TD12]
                    .every(x => x === 'TD') ? 'YES' : 'NO'
      

      【讨论】:

      • 测试都不是 TD
      【解决方案4】:

      这会工作

      const tdsArray = [Vi_TDO1, Vi_TD02,...,Vi_TD12] 
      const Opt_TDTD = tdsArray.every(td => td !== 'TD') ? "NO" :  "YES";
      console.log(Opt_TDTD);
      
      猜你喜欢
      • 1970-01-01
      • 2020-02-14
      • 2018-12-26
      • 1970-01-01
      • 2018-10-25
      • 1970-01-01
      • 2021-07-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多