Javascript 向前循环,然后从第一个位置-1继续
我正在尝试向所有玩家分发卡片。还有8个座位。交易可以从任何位置开始。下面的示例显示起始位置为3,这意味着将按照3-4-5-6-7-8-1-2的顺序处理卡。如果交易在7点开始,那么它将是7-8-1-2-3-4-5-6等等。 我当前的循环在8点结束。我不知道如何继续 这是我的密码:Javascript 向前循环,然后从第一个位置-1继续,javascript,Javascript,我正在尝试向所有玩家分发卡片。还有8个座位。交易可以从任何位置开始。下面的示例显示起始位置为3,这意味着将按照3-4-5-6-7-8-1-2的顺序处理卡。如果交易在7点开始,那么它将是7-8-1-2-3-4-5-6等等。 我当前的循环在8点结束。我不知道如何继续 这是我的密码: var a = 3; //this is the variable starting position for (i = a; i < 9; i++) { var next
var a = 3; //this is the variable starting position
for (i = a; i < 9; i++) {
var nextavail = $('#seat' + i).find('.back');
if (nextavail.length > 0) {
oPosition.seat = 'seat' + i;
oPosition.cardid = $(nextavail[0]).data('card');
break;
}
var a=3//这是可变的起始位置
对于(i=a;i<9;i++){
var nextavail=$('#seat'+i).find('.back');
如果(nextavail.length>0){
oPosition.seat='seat'+i;
oPosition.cardd=$(nextavail[0]).data('card');
打破
}
如果我尝试这样做:
for(I=a;I<9;I++,I==8?7:I=1)
这将把我带入一个无限循环。有什么想法吗?循环以小于9的最大值I结束。如果你想要I
移动3-4-5-6-7-8-9-1-2
for (j = a-1; j < 8+a ; j++){
i = j%9 + 1 ;
// putting the rest of the code of the for loop inside
var nextavail = $('#seat' + i).find('.back');
if (nextavail.length > 0) {
oPosition.seat = 'seat' + i;
oPosition.cardid = $(nextavail[0]).data('card');
break;
}
}
(j=a-1;j<8+a;j++)的{
i=j%9+1;
//将for循环的其余代码放入
var nextavail=$('#seat'+i).find('.back');
如果(nextavail.length>0){
oPosition.seat='seat'+i;
oPosition.cardd=$(nextavail[0]).data('card');
打破
}
}
var start=3;
var max=9;
对于(变量i=开始;i<最大值+开始;i++){
变量数=(i>max)?i%max:i;
控制台日志(编号);
}
var a=3;//这是变量的起始位置
var seats=8;//座位数
对于(变量i=0;i0){
oPosition.seat='seat'+当前位置;
oPosition.cardd=$(nextavail[0]).data('card');
打破
}
}
尝试使用模运算符这种方法是对“模”的一种很好的使用(
%
)操作员。nextavail=nextavail%9
将循环您返回到0。根据需要添加一个。您在for循环中使i=1,它将继续forever@theGleep你能给我举个例子吗?我可能是
var a = 3; //this is the variable starting position
var seats = 8; // seats count
for (var i = 0; i < seats; i++) {
var currentPosition = (a + i) === seats ? seats : (a + i) % seats;
var nextavail = $('#seat' + currentPosition).find('.back');
if (nextavail.length > 0) {
oPosition.seat = 'seat' + currentPosition;
oPosition.cardid = $(nextavail[0]).data('card');
break;
}
}