有没有更好的方法在for循环中写入if条件。
for(var i in selectedId) {
for(var key in myJSON) {
if((key === "correct" && selectedId[i].type === "fp") || key !== "correct") {
//do something
}
}
}
基本上我需要调用一个函数,如果键没有正确的值或者它是正确的那么类型必须是"fp"
。是否有更好的方法来编写这个条件并使其更具可读性?
答案 0 :(得分:2)
你的条件:
if((key === "correct" && selectedId[i].type === "fp") || key !== "correct")
在以下时间返回true
您可以像这样简化:
if(key !== "correct" || selectedId[i].type === "fp")
在以下时间返回true
:
正如您所看到的那样,它们是等效的(只有交换的条件顺序)。
答案 1 :(得分:2)
你可以摆脱内循环:
for(var i in selectedId) {
if (Object.keys(myJSON).indexOf("correct") == -1 || selectedId[i].type == 'fp') {
//do something
}
}