如何在 JavaScript 中编码 "if X or If Y AND Z"?

How to code a "if X or If Y AND Z" in JavaScript?

我正在尝试编写一些 "If X or if Y AND Z" 可以说的东西,但看起来我犯了一个错误

if((machine.isUsed == false) || (if(this.whoUseIt.includes(Session.get("loggedUser")))&&(machine.isUsed))){

我需要做这个测试以避免代码重复。如果你有更好的主意,我仍然愿意接受。

if 条件下移除 if()

if (machine.isUsed == false 
  || this.whoUseIt.includes(Session.get("loggedUser")) 
  && machine.isUsed) {}
if(x || (Y && Z)){...}

应该没问题。

您不需要在 if 中添加另一个 if。

If X or if Y AND Z => If (X || (Y && Z))

 if(
   (machine.isUsed == false) || 
   (this.whoUseIt.includes(Session.get("loggedUser")) && (machine.isUsed))
 )
if(X || (Y && Z)){
    /* your logic
}

使用 ! 而不是 == false 并删除多余的括号:

if (!machine.isUsed || (this.whoUseIt.includes(Session.get("loggedUser")) && machine.isUsed)) {

但是not A or (B and A)可以简化为not A or B:

if (!machine.isUsed || this.whoUseIt.includes(Session.get("loggedUser"))) {

它的意思是:如果这台机器没有被使用或者这是正在使用它的用户。