所以,我是JS的超级新手!我正在尝试编写一个语法来检查是否只有三个变量中的一个存在。
if a and (not b or not c) or b and (not a or not c) or c and (not a or not b)
试一下:
if ((a || b || c) && !(a && b && c)) {
}
这里有一个测试:
function specialBool(a, b, c, message){
if ((a || b || c) && !(a && b && c)) {
console.log(message)
}
}
specialBool(true, false, false, 'One true');
specialBool(true, true, false, 'Two true');
specialBool(true, true, true, 'All true'); // Shouldn't log
将它们转换为布尔值,然后将它们相加,检查结果是否为1。(true将被强制为1;False将被强制为0)
if (Number(Boolean(a)) + Number(Boolean(b)) + Number(Boolean(c)) === 1) {
// ...
}
或
const sum = [a, b, c].reduce((sum, item) => sum + Number(Boolean(item)), 0);
if (sum === 1) {
// ...
}