用javascript数组模拟飞机座位

用javascript数组模拟飞机座位,javascript,Javascript,我正在设法填满头等舱和经济舱的座位。然而,当头等舱或经济舱都客满时,我希望会有一个弹出窗口,询问您是否愿意坐在其他座位区,是否还有剩余的座位。如果所有的座位都满了,就会弹出一个弹出窗口,显示飞机已经满了 我有以下js小提琴: 还有javascript: var seatSection; seatsAvailable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; check = function(){ seatSection = parseInt(document.

我正在设法填满头等舱和经济舱的座位。然而,当头等舱或经济舱都客满时,我希望会有一个弹出窗口,询问您是否愿意坐在其他座位区,是否还有剩余的座位。如果所有的座位都满了,就会弹出一个弹出窗口,显示飞机已经满了

我有以下js小提琴:

还有javascript:

var seatSection;
seatsAvailable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];


check = function(){
seatSection = parseInt(document.getElementById('number').value);

if (seatSection == 1) {
    firstClass();
} else if (seatSection == 2) {
    economy();
} else {
    other();
}
}

firstClass = function() {

for (var i = 1; i <= 5; i++) {
    if (seatsAvailable[i] == 0) {
        window.alert("been assigned to first class seat " + i);
        seatsAvailable[i] = 1;
        break;
    }
};

}

economy = function() {

for (var i = 6; i <= 10; i++) {
    if (seatsAvailable[i] == 0) {
        window.alert("been assigned to economy seat " + i);
        seatsAvailable[i] = 1;
        break;

    }

};

}


other = function() {
window.alert("Wrong number");
}
var seatSection;
seatsAvailable=[0,0,0,0,0,0,0,0,0,0,0];
检查=函数(){
seatSection=parseInt(document.getElementById('number').value);
如果(seatSection==1){
第一类();
}else if(seatSection==2){
经济();
}否则{
其他();
}
}
第一类=函数(){

对于(var i=1;i您只需在名为
seatFound
for
循环之前添加一个布尔变量,并将其设置为false。然后在循环中,如果您找到一个座位,则将其设置为true。然后在
for
循环之后进行检查,如果它仍然为false,则您知道没有打开的座位,因此您可以检查此人是否有空座位想换个地方

economy
然后看起来像这样:

economy = function() {
    var seatFound = false;
    for (var i = 6; i <= 10; i++) {
        if (seatsAvailable[i] == 0) {
            window.alert("been assigned to economy seat " + i);
            seatsAvailable[i] = 1;
            seatFound = true;
            break;
        }
    };
    if (!seatFound && window.confirm("There are no more economy class seats 
                       available. Would you like an first class seat?")) {
        first();
    }
}
economy=function(){
var seatFound=false;

对于(var i=6;i您只需添加一个计数器,用于计算已占用的座位数:

var numberOfSeatsTaken = 0;
然后更新您预订的每个座位的计数器。 这是您的问题的最新解决方案


注:如果这是一项援助,你真的不应该要求解决你的问题,而应该寻求帮助。

这应该对你有帮助:

var seatsavaailable=[0,0,0,0,0,0,0,0,0];
var searchingwhere=false;
功能检查可用性(){
var sectionrequest=parseInt(document.getElementById('seatNumber').value);
开关(请求的部分){
案例1:
案例2:
findSeat(请求的部分);
打破
违约:
警报(“错误号码!”);
}
}
函数findSeat(请求的部分){
var searchRange=(sectionRequested==1){
起:0,,
致:4,,
章节:“头等舱”
} : {
起:5,,
致:9,,
第节:“经济”
};
var foundNextAvailable=false;

对于(var i=searchRange.from;i那么,你在问什么?如何使头等舱达到5人时,它会问你是否愿意坐经济舱,如果它有空位。同样,如果经济舱达到最多5人,它应该检查头等舱是否有空位。如果p一等舱或经济舱的座位都满了,但如果飞机的两个座位都满了呢?有没有办法弹出一个弹出窗口,显示飞机的两个座位都满了?你所要做的就是添加一个变量来跟踪预订的座位总数。然后你只需检查它是否等于座位总数。
var seatsAvailable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
var searchingElsewhere = false;

function checkAvailability() {
    var sectionRequested = parseInt(document.getElementById('seatNumber').value);
    switch (sectionRequested) {
        case 1:
        case 2:
            findSeat(sectionRequested);
            break;
        default:
            alert("Wrong number!");
    }
}

function findSeat(sectionRequested) {
    var searchRange = (sectionRequested == 1) ? {
        from: 0,
        to: 4,
        section: "first class"
    } : {
        from: 5,
        to: 9,
        section: "economy"
    };
    var foundNextAvailable = false;
    for (var i = searchRange.from; i <= searchRange.to; i++) {
        if (seatsAvailable[i] == 0) {
            alert(String("You're assigned to seat " + (i + 1) + " in " + searchRange.section + "."));
            seatsAvailable[i] = 1;
            foundNextAvailable = true;
            break;
        }
    }
    if (foundNextAvailable == false) {
        if (seatsAvailable.indexOf(0) == -1) {
            alert("Sorry, the plane is full.");
            return;
        } else {
            if (confirm("Section full.  Sit elsewhere in the plane?")) {
                if (searchingElsewhere == false) searchingElsewhere = true;
                var otherSection = (sectionRequested == 1) ? 2 : 1;
                findSeat(otherSection);
            }
        }
    }
}