【问题标题】:Is there a way to simplify this ternary operation? [closed]有没有办法简化这个三元运算? [关闭]
【发布时间】:2023-01-07 03:27:15
【问题描述】:
fleet === 'M9'
?(numberOnLeft
  ? textStart 
  : !_.isUndefined(car.passengers) && showPassengers ? personStart + 26 : textStart)
:textStart

这是我写的逻辑,它工作得很好,但似乎应该有一种方法来简化它,因为我返回 textStart 很多次,但我似乎无法弄清楚。

【问题讨论】:

  • 看起来很简单,如果它没有坏,就不要修复它。
  • 如果您了解三元的工作原理,并且了解if/else 的工作原理,您应该能够计算出两者之间的映射。如果您遇到问题,请尝试解决方案并提出具体问题。
  • 可以减少到2个三元组:fleet === "M9" && !numberOnLeft ? ... : textStart
  • 你可以选择一个三元组:fleet === 'M9' && !numberOnLeft && !_.isUndefined(car.passengers) && showPassengers ? personStart + 26 : textStart

标签: javascript typescript if-statement conditional-operator


【解决方案1】:

if (fleet === 'M9') {
  if (numberOnLeft) {
    textStart = textStart;
  } else if (!_.isUndefined(car.passengers) && showPassengers) {
    textStart = personStart + 26;
  } else {
    textStart = textStart;
  }
} else {
  textStart = textStart;
}

看起来您正在尝试根据 fleet 的值和其他一些条件来确定 textStart 的值。您可以使用 if 语句来简化三元运算

【讨论】:

  • 您是使用 ChatGPT 生成此答案的吗?您甚至在发布之前阅读过它吗?你分配textStart = textStart不少于三次。
  • 是的.. 我更多地考虑是否可以删除任何可能多余的条件。您只是用 if 语句替换三元
猜你喜欢
  • 2020-02-18
  • 1970-01-01
  • 2012-06-28
  • 2021-06-22
  • 1970-01-01
  • 2019-03-09
  • 2019-04-03
  • 1970-01-01
  • 2020-12-17
相关资源
最近更新 更多