Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有一种更快、更简单的方法来编写多个带有多个AND条件的if语句?_Javascript_Loops_If Statement_Conditional Statements - Fatal编程技术网

Javascript 有没有一种更快、更简单的方法来编写多个带有多个AND条件的if语句?

Javascript 有没有一种更快、更简单的方法来编写多个带有多个AND条件的if语句?,javascript,loops,if-statement,conditional-statements,Javascript,Loops,If Statement,Conditional Statements,是否有一种简单的方法可以满足所有可能的组合,而不必手动编写所有这些if语句 var ups; var trans; var sat; var kplc; if(ups === 'false' && trans ==='true'&& sat ==='true' && kplc ==='true'){ //do something } if(ups === 'true' && trans ==='true

是否有一种简单的方法可以满足所有可能的组合,而不必手动编写所有这些if语句

var ups;
var trans;
var sat;
var kplc;

 if(ups === 'false' && trans ==='true'&& sat ==='true' && kplc ==='true'){
            //do something
}
 if(ups === 'true' && trans ==='true'&& sat ==='true' && kplc ==='true'){
            //do something
}
 if(ups === 'false' && trans ==='false'&& sat ==='true' && kplc ==='true'){
            //do something
}
 if(ups === 'false' && trans ==='true'&& sat ==='false' && kplc ==='true'){
            //do something
}
////and so forth and so forth....

如果需要检查所有值是否通过相同的谓词,可以将所有值放入一个数组并使用array.prototype.every

let foo = true
let bar = true
let baz = false

if ([foo, bar, baz].every(value => value === true)) {
  console.log('condition passed')
}
同样,要检查它们中是否至少有一个通过谓词,请使用Array.prototype.some

let foo = true
let bar = true
let baz = false

if ([foo, bar, baz].some(value => value === true)) {
  console.log('condition passed')
}

我只看到一个
if
语句。。?你是说每个组合都有一个?为什么是这些字符串?答案取决于要求。如果你的四个布尔值的每一个组合都会发生不同的事件,那么你需要所有的分支。但是,如果要采取的操作可以以某种方式分组,那么答案将不同。为了减少代码,我将首先将其转换为布尔值,然后只说
If(!ups&&trans&&sat&&kplc)
。如果您需要它们作为字符串,那么我看不到比创建一些函数来提高代码可读性更好的选择。同样也不是很好。我们不能在这里告诉您答案,尽管根据您提供的内容,这是编程的关键,能够通过您编写的代码找到所需的最少路径数。如果到目前为止您发布了10个,我们可能可以指导您。这是一个有趣的解决方案,让我试试。有没有办法打印出同样正确的变量?
findIndex
。但老实说,
foo&&bar&&baz
foo+bar+baz>1
更短,更容易理解。这只会检查foo、bar和baz是否都是真的,或者至少其中一个是真的。这仅仅是两个结果。我相信这个问题是在寻找一个答案,告诉我们哪些变量是正确的。