Javascript 我的电梯数量有什么问题?

Javascript 我的电梯数量有什么问题?,javascript,Javascript,这是我的专栏课,我在第二段中称我的电梯数量: class Column { constructor(floorsNumber, elevatorsNumber) { this.floorsNumber = floorsNumber; this.elevatorsNumber = elevatorsNumber; this.elevatorsList = []; this.directionButtonsList = []; // Number o

这是我的专栏课,我在第二段中称我的电梯数量:

class Column {
constructor(floorsNumber, elevatorsNumber) {
    this.floorsNumber = floorsNumber;
    this.elevatorsNumber = elevatorsNumber;
    this.elevatorsList = [];
    this.directionButtonsList = [];
    
    // Number of elevators
    for (let i = 0; i < elevatorsNumber; i++) {
        this.elevatorsList.push(new Elevator(0, floorsNumber));
}



    for (let i = 0; i < this.floorsNumber; i++) {
        //  floor1 has no DOWN direction button
        if (i === 1) {
            this.directionButtonsList.push(new DirectionButton(i, "up", false));
        } 
        // floor10 has no UP direction button  
        else if (i === 10) {
            this.directionButtonsList.push(new DirectionButton(i, "down", false));
            
        }
         // The rest has both directions
        else {
            this.directionButtonsList.push(new DirectionButton(i, "up", false));
            this.directionButtonsList.push(new DirectionButton(i, "down", false));
        }
    }
}
} 情景1()`


我的问题是为什么场景不是调用我的电梯[0],而是调用[1]。当0明显比电梯1更接近时…

据我所知,这是因为这种情况:

 else if (this.elevatorsList[i].status == "idle") {
            bestElevator = this.elevatorsList[i];
        }
对于For循环的每次迭代,代码将按顺序运行if/else语句。因此,在i==0时,电梯不会向上移动,因此,如果忽略条件。电梯没有向下移动,因此,如果忽略条件,则会发生其他情况。电梯处于空闲状态,因此如果条件为运行,则为else,并且BEST电梯设置为该索引,并且for循环比较距离未运行


我想如果你想在调用空闲电梯之前检查是否有移动电梯,你必须在整个阵列中寻找移动电梯,如果没有找到,然后运行一个循环比较空闲电梯。

据我所知,这是因为以下情况:

 else if (this.elevatorsList[i].status == "idle") {
            bestElevator = this.elevatorsList[i];
        }
对于For循环的每次迭代,代码将按顺序运行if/else语句。因此,在i==0时,电梯不会向上移动,因此,如果忽略条件。电梯没有向下移动,因此,如果忽略条件,则会发生其他情况。电梯处于空闲状态,因此如果条件为运行,则为else,并且BEST电梯设置为该索引,并且for循环比较距离未运行

我认为如果你想在调用空闲电梯之前检查是否有移动的电梯,你必须在整个数组中寻找移动的电梯,如果没有找到,那么运行一个循环来比较空闲的电梯

 else if (this.elevatorsList[i].status == "idle") {
            bestElevator = this.elevatorsList[i];
        }