使用布尔值反转 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);
}
}
});
本质上,当 isInvert
为 true
时,相反的值将存储到 isInverse
为 false
时。我想知道是否有更好的方法来编写第一段代码?
你可以进一步简化为
if (isInvert == (query.name == input.name)) {
inputsArray.push(input.id);
}
你可以使用这个if(isInvert ^ (query.name != input.name)) inputsArray.push(input.id);
where ^ 是异或运算
更多的是好奇心。我目前有一段代码如下所示:
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);
}
}
});
本质上,当 isInvert
为 true
时,相反的值将存储到 isInverse
为 false
时。我想知道是否有更好的方法来编写第一段代码?
你可以进一步简化为
if (isInvert == (query.name == input.name)) {
inputsArray.push(input.id);
}
你可以使用这个if(isInvert ^ (query.name != input.name)) inputsArray.push(input.id);
where ^ 是异或运算