公交车座位安排javascript算法

时间:2015-04-15 09:31:26

标签: javascript css

我是编程新手,

我想使用javascript实现巴士座位安排。

我的职能:

var init = function (reservedSeat) {
            var str = [], seatNo, className;
            bus_capacity = settings.cols * settings.rows;
            for (i = 0; i < settings.cols; i++) {
                for (j = 0; j < settings.rows; j++) {

                    seatNo = (i + j * settings.cols + 1);
                    className = settings.seatCss + ' ' + settings.rowCssPrefix + i.toString() + ' ' + settings.colCssPrefix + j.toString();
                    if (seatNo > (bus_capacity + settings.offset) ) {break};

                    if ( $.isArray(reservedSeat) && $.inArray(seatNo, reservedSeat) != -1) {
                        className += ' ' + settings.selectedSeatCss;
                    }
                    str.push('<li data-toggle="modal" href="#sell_ticket" class="' + className + '"' +
                              'style="top:' + (i * settings.seatHeight).toString() + 'px;left:' + (j * settings.seatWidth).toString() + 'px">' +
                              '<h4><a  title="' + seatNo + '">' + seatNo + '</a></h3>' +
                              '</li>');
                }
            }

            $('#place').html(str.join(''));
        };

这是一个显示具有指定座位号的座位的功能,但是我希望显示...这个:

  

[1] [2] [5] [4] [3]

     

[6] [7] [10] [9] [8]

     

...

     

...

1 个答案:

答案 0 :(得分:0)

function getSeatPos(seat) {
    seat--;
    return {
        row: Math.floor(seat / 5) + 1,
        place: [1, 2, 5, 4, 3][seat % 5]
    };
}
var i;
for (i = 1; i <= 20; i++) {
    document.write(i + ': ' + JSON.stringify(getSeatPos(i), null, 4) + '<br>');
}

计算基于1..n,但我们需要0 ..(n-1)。其余的是在即时调用的数组中。

或将ID安排在所需位置