JS中if条件的编程风格更好

时间:2017-07-21 14:50:56

标签: javascript logic

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

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

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

2 个答案:

答案 0 :(得分:2)

你的条件:

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

在以下时间返回true

  • 键是"正确"并输入" fp"
  • 键不是"正确"

您可以像这样简化:

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

在以下时间返回true

  • 键不是"正确"
  • 键是"正确"并输入" fp"

正如您所看到的那样,它们是等效的(只有交换的条件顺序)。

答案 1 :(得分:2)

你可以摆脱内循环:

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