javascript二维数组';对于循环';设置每秒的数组值

javascript二维数组';对于循环';设置每秒的数组值,javascript,arrays,multidimensional-array,Javascript,Arrays,Multidimensional Array,函数试图将2D数组中的某些元素设置为零,但每设置第n个元素fleetline[i][j]=0将每行“j”元素设置为0。为什么会这样 function hasMissileHit() { var i; var j; var leftX; var rightX; var upperY; var lowerY; for (i = 0; i < numberOfLines;

函数试图将2D数组中的某些元素设置为零,但每设置第n个元素
fleetline[i][j]=0
将每行“j”元素设置为0。为什么会这样

    function hasMissileHit() {

        var i;
        var j;
        var leftX;
        var rightX;
        var upperY;
        var lowerY;

        for (i = 0; i < numberOfLines; i++) {

            for (j = 0; j < numOfInvadersInLine; j++) {

                leftX = xPos + (22 * block * j);
                rightX = xPos + (22 * block * j) + (11 * block);
                upperY = yPos + ((((8 * block) + ySpaceBetweenInvaders) * i));
                lowerY = yPos + ((((8 * block) + ySpaceBetweenInvaders) * i) + (8 * block));

                if (fleetLine[i][j]) {

                    if (baseMissileYPos <= lowerY && baseMissileYPos >= upperY) {
                        if (baseMissileXPos >= (leftX - 2) && baseMissileXPos <= (rightX)) {
                            baseMissileLaunch = false;
                            baseMissile = 0;
                            context1.clearRect(baseMissileXPos, baseMissileYPos, baseMissileWidth, baseMissileHeight);
                            killInvader(leftX, upperY);

                            fleetLine[i][j] = 0;

                        }
                    }
                }
            }
        }
    }
    function killInvader(invX, invY) {

        var xI = invX - 4;
        var yI = invY - 15;

        context1.clearRect(xI, yI, invaderWidth + 8, invaderHeight + 15);

    }
函数hasMissileHit(){
var i;
var j;
var-leftX;
var-rightX;
var upperY;
var lowerY;
对于(i=0;i如果(baseMissileXPos>=(leftX-2)和&baseMissileXPos,你能提供一个预期和实际输出的例子吗?1)我认为你想在导弹击中后返回(或返回true)。2)你应该向下迭代到上半部分=>在i上反转你的循环。3)你能显示killInvader的代码吗?fleetLine[i][j]是表示对象矩阵的2D数组。“1”表示对象存在-“0”表示不再将数组或矩阵中的元素视为存在。如果导弹在杀死入侵者后仍保持活动状态,它将在一列中杀死所有入侵者。你能确定这不是真的吗?我个人会控制台.log函数start和console.log中的('entering hasMissileHit')在命中时记录('hit at'+i+''+j),查看发生了什么。导弹肯定在爆炸中死亡!