Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.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 如何缩短这个if语句?_Javascript_If Statement - Fatal编程技术网

Javascript 如何缩短这个if语句?

Javascript 如何缩短这个if语句?,javascript,if-statement,Javascript,If Statement,我有这样一个if语句: 如果此.exercisesDoneArray[ind][i].done&&this.exercisesDoneArray[ind][1].done &&this.exercisesDoneArray[ind][i]。exercise==this.slides.clickedSlide.nextElementSibling.nextElementSibling.id ||this.exercisesDoneArray[ind][1]。exercise==this.slide

我有这样一个if语句:

如果此.exercisesDoneArray[ind][i].done&&this.exercisesDoneArray[ind][1].done &&this.exercisesDoneArray[ind][i]。exercise==this.slides.clickedSlide.nextElementSibling.nextElementSibling.id ||this.exercisesDoneArray[ind][1]。exercise==this.slides.clickedSlide.nextElementSibling.nextElementSibling.id{


但是我想知道如何缩短这个..

使用一些变量怎么样

var ex1 = this.exercisesDoneArray[ind][i],
    ex2 = this.exercisesDoneArray[ind][1],
    nextSlide = this.slides.clickedSlide.nextElementSibling.nextElementSibling.id;

if(ex1.done && ex2.done && ex1.exercise === nextSlide || ex2.exercise === nextSlide){

使用少量变量,然后将全局if置于外部,如果另一个if,则检查您的主要练习是否已完成,因为它总是要完成,因此无需始终使用and检查另一个if内部

var currentExcercise = this.exercisesDoneArray[ind][i];
var baseExcercise = this.exercisesDoneArray[ind][1];
var slideId = this.slides.clickedSlide.nextElementSibling.nextElementSibling.id;

if (!baseExcercise.done) {
    return false;
}
if(currentExcercise.done && currentExcercise.exercise === slideId  || baseExcercise .exercise === slideId ){

请随意介绍一些本地临时布尔值,将其扩展到几行:不仅代码的“形状”适合页面,而且调试起来更容易。@NinaScholz yesh-我注意到了。我敢打赌你是对的,这是一个输入错误:减少变量名?例如:将exercisesDoneArray转换为eDA。这是ch中的舌头好的,但是J-Titus的答案是好的。这类问题不属于堆栈溢出。试一下。这也可以吗?ifex1.done | | ex2.done&&ex1.exerce==nextSlide | ex2.exerce==nextSlide | ex1.exerce==afterNextSlide | ex2.exerce==afterNextSlide{当然,我想;确保定义了afterNextSlide。这取决于您试图用if语句实现什么。