Javascript数组没有循环回到开头

时间:2016-10-27 13:19:32

标签: javascript loops

我正在写一个简单的纸牌游戏,但出于某种原因,下面的代码表现得非常奇怪......首先使用theTurn(0)来调用转弯函数

players是一个具有玩家姓名和手牌等的对象数组。

function theTurn(playerNumber) {
    if(play == 1) {
        $('#player').text(players[playerNumber].Name);
        $('#submit').click(function() {
            nextPlayer(playerNumber);
        })
    }
}

function nextPlayer(playerNumber) {
    if(playerNumber == players.length - 1) {
        theTurn(0);
    } else {
        theTurn(playerNumber + 1);
    }
}

出于某种原因,我得到了0,然后是1,然后是1,然后是0。

我遗漏了一些东西......但这是它的要点,问题也出现在这个简化版本中。

非常感谢任何有关我错误逻辑的帮助。

1 个答案:

答案 0 :(得分:1)

这实际上更有意义......只需添加一次点击处理程序,然后将玩家编号设置为数据属性,以便nextPlayer函数知道没有参数的情况。

$('#player').data('activePlayer', 0);
$('#submit').click(function() {
    nextPlayer();
});

function theTurn(playerNumber) {
    if(play == 1) {
        $('#player').text(players[playerNumber].Name);
        $('#player').data('activePlayer', playerNumber);

    }
}

function nextPlayer() {
    var playerNumber = $('#player').data('activePlayer');

    if(playerNumber == players.length - 1) {
        theTurn(0);
    } else {
        theTurn(playerNumber + 1);
    }
}