使用布尔值反转 if 条件

Inverting if condition with boolean

更多的是好奇心。我目前有一段代码如下所示:

var inputsArray=[];
userInputs.forEach(input=>{
        if(isInvert ? query.name == input.name : query.name != input.name){
              inputsArray.push(input.id);
        }
    });

在那之前我有:

            var inputsArray=[];
            userInputs.forEach(input=>{
               if(isInvert){
                    if (query.name == input.name){
                       inputsArray.push(input.id);
                    }
              }else {
                   if (query.name != input.name){
                      inputsArray.push(input.id);
                    }
              }
          });

本质上,当 isInverttrue 时,相反的值将存储到 isInversefalse 时。我想知道是否有更好的方法来编写第一段代码?

你可以进一步简化为

if (isInvert == (query.name == input.name)) {
    inputsArray.push(input.id);
}

你可以使用这个if(isInvert ^ (query.name != input.name)) inputsArray.push(input.id); where ^ 是异或运算