【问题标题】:Better programming style for if condition in JSJS中if条件的更好编程风格
【发布时间】:2017-07-21 14:50:55
【问题描述】:

有没有更好的方法在 for 循环中编写这个 if 条件。

for(var i in selectedId) {
  for(var key in myJSON) {
    if((key === "correct" && selectedId[i].type === "fp") || key !== "correct") {
       //do something
    }
  }
}

如果键的值不正确或正确,则基本上我需要调用一个函数,那么类型必须是 "fp" 。有没有更好的方法来编写这个 if 条件并使其更具可读性?

【问题讨论】:

  • !== ?有错字吗?

标签: javascript logic


【解决方案1】:

你的条件:

if((key === "correct" && selectedId[i].type === "fp") || key !== "correct")

在以下情况下返回 true:

  • 键为“正确”,类型为“fp”
  • 密钥不“正确”

你可以这样简化:

if(key !== "correct" || selectedId[i].type === "fp")

在以下情况下返回true:

  • 密钥不“正确”
  • 键为“正确”,类型为“fp”

如您所见,它们是等价的(仅交换条件顺序)。

【讨论】:

    【解决方案2】:

    你可以摆脱内循环:

    for(var i in selectedId) {
      if (Object.keys(myJSON).indexOf("correct") == -1 || selectedId[i].type == 'fp') {
        //do something
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-04
      • 2016-03-21
      • 1970-01-01
      • 2010-09-12
      • 2016-12-06
      • 2017-11-30
      • 2016-12-21
      • 1970-01-01
      相关资源
      最近更新 更多