不遍历 for 循环 - javascript

Not looping through for loop - javascript

以下代码中的 for 循环似乎没有被激活。

var updateMobs = function(){
    for (var b = 0; b < mobsBlue; b++){
        BM = mobsBlue[b]
        BM.x = BM.x - 1

        doCollision(BM, redBase, BM)
        doCollision(BM, debugPlayer, BM)
        console.log("draw1")
        BM.Draw(ctx, false)
    }
    for (var r = 0; r < mobsRed; r++){
        RM = mobsRed[r]
        RM.x = RM.x + 1

        doCollision(RM, blueBase, RM)   
        doCollision(RM, debugPlayer, RM)
        console.log("draw2")
        RM.Draw(ctx, false)
        for (var bb = 0; bb < mobsBlue; bb++){
            BM = mobsBlue[bb]
            console.log("draw3")
            BM.Draw(ctx, false)
            RM.Draw(ctx, false)
        }

    }

}

此外,如果您有任何改进,请随时评论我可以对我的代码做的任何改进,以使这项工作更好。我也知道我的 javascript 末尾没有分号所以不要评论我

我没有收到任何错误,mobsBlue 和 mobsRed 都是数组。

此外,我正在循环调用此函数。

对不起,冒犯了。这是不必要的,我应该回答这个问题:|。谢谢你帮助我

诚挚的歉意

因为这是一个函数,所以一定要用 updateMobs(); 调用它。

我相信 mobsBluemobsRed 是数组(因为你调用 mobsBlue[b] 并对其进行索引),所以对于你的 for 循环,你想要循环 for (var b = 0; b < mobsBlue.length; b++){

因此:

var arr = [1, 2, 3, 4]
for(var i = 0;i < arr.length;i++){
    item = arr[i]
    alert(item)
}

这是您编辑的代码:

var updateMobs = function(){
    for (var b = 0; b < mobsBlue.length; b++){
        BM = mobsBlue[b]
        BM.x = BM.x - 1

        doCollision(BM, redBase, BM)
        doCollision(BM, debugPlayer, BM)
        console.log("draw1")
        BM.Draw(ctx, false)
    }
    for (var r = 0; r < mobsRed.length; r++){
        RM = mobsRed[r]
        RM.x = RM.x + 1

        doCollision(RM, blueBase, RM)   
        doCollision(RM, debugPlayer, RM)
        console.log("draw2")
        RM.Draw(ctx, false)
        for (var bb = 0; bb < mobsBlue.length; bb++){
            BM = mobsBlue[bb]
            console.log("draw3")
            BM.Draw(ctx, false)
            RM.Draw(ctx, false)
        }

    }

}

#1 给看不懂这个简单代码的人打电话'retarded' 太冒犯了

#2 您是否在其他代码的某处调用了 updateMobs 函数?

#3 我假设 mobsBlue 是一个像 njzk2 所说的数组,也许你的意思是得到它的长度?使用:

for (var b = 0; b < mobsBlue.length; b++)

与 mobsRed 相同。