for循环后未到达代码(javascript)

for循环后未到达代码(javascript),javascript,loops,for-loop,Javascript,Loops,For Loop,在这个函数中,就在第一个for循环之后,没有到达代码。警报(“无法到达此处”)不起作用。我是否遗漏了一些明显的JavaScript警告? 其余代码可在此处找到: 非常感谢您的帮助 function checkForWin(){ var winCondition = 0; //check for horizontal wins for(i = 0; i < board[i].length; i++) { for(j = 0; j < boar

在这个函数中,就在第一个for循环之后,没有到达代码。
警报(“无法到达此处”)不起作用。我是否遗漏了一些明显的JavaScript警告?
其余代码可在此处找到:
非常感谢您的帮助

function checkForWin(){

    var winCondition = 0;

    //check for horizontal wins
    for(i = 0; i < board[i].length; i++) {
        for(j = 0; j < board[i].length; j++) {
            winCondition += board[i][j];
            if(winCondition === board[i].length) {
                alert("win detected horizontal");
            }
        }
        winCondition = 0;
    }
    alert("can't get here");

    //check for vertical wins
    for(i = 0; i < board[i].length; i++) {
        for(j = 0; j < board[i].length; j++) {
            winCondition += board[j][i];
            alert("winCondition: " + winCondition);
            if(winCondition === board[i].length) {
                alert("win detected horizontal");
            }
        }
    }

    //if diagonal / is 3 or -3 win
    //if diagonal \ is 3 or -3 win
}
函数checkForWin(){
var winCondition=0;
//检查横向胜利
对于(i=0;i
我认为,通过检查board[I]。第一个for循环中的长度,您的代码陷入了一个无限循环

试试这个:

function checkForWin(){

    var winCondition = 0;

    //check for horizontal wins
    for(i = 0; i < board.length; i++) { //HERE WE CHECK FOR board.length INSTEAD OF board[i].length
        for(j = 0; j < board[i].length; j++) {
            winCondition += board[i][j];
            if(winCondition === board[i].length) {
                alert("win detected horizontal");
            }
        }
        winCondition = 0;
    }
    alert("can't get here");

    //check for vertical wins
    for(i = 0; i < board.length; i++) { //HERE YOU HAD THE SAME PROBLEM
        for(j = 0; j < board[i].length; j++) {
            winCondition += board[j][i];
            alert("winCondition: " + winCondition);
            if(winCondition === board[i].length) {
                alert("win detected horizontal");
            }
        }
    }

    //if diagonal / is 3 or -3 win
    //if diagonal \ is 3 or -3 win
}
函数checkForWin(){
var winCondition=0;
//检查横向胜利
对于(i=0;i
最后推荐。。。使用for循环进行迭代时,请尝试使用迭代变量的var,如下所示:

for(var i=0; i < board.length; i++)
for(变量i=0;i
而不是:

for(i=0; i < board.length; i++)
(i=0;i

通过这样做,您避免了用这些变量填充全局范围(在上面的例子中)。

您在控制台中看到任何错误吗?编辑:存在未捕获错误:
无法读取未定义的属性“length”
那么您的第一个循环条件应该是
board。length
而不是
board[i]。length
board[i]也不是数组吗?即数组中的数组。使用
var
声明
i
j
,并使用
console.log()
而不是
alert()