如果条件为boolen,则取反

问题描述 投票:0回答:2

好奇心比什么都重要。我目前有一段看起来像这样的代码:

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时相反的值。我想知道是否有更好的方法来编写第一段代码?

javascript logical-operators
2个回答
3
投票

您可以进一步简化为

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

1
投票

您可以使用此if(isInvert ^ (query.name != input.name)) inputsArray.push(input.id);,其中^是XOR操作

© www.soinside.com 2019 - 2024. All rights reserved.