多维数组中的setAttribute()

时间:2016-12-07 10:02:11

标签: javascript

我想弄清楚的是如何在一个值为“3”的二维数组中为某个div提供另一个类。这是我最初尝试过的。

  • numRows是数组中的行数。
  • numSeatsPerRow是每个“numRows”中的数组项数。
  • r和t是二维数组中的位置。

    for(var r = 0; r<numRows; r++){
        for(var t = 0; t<numSeatsPerRow; t++){
    
            if(myArray[r][t] === 3){
    
                document.getElementsByTagName("div")[r][t].setAttribute("class", "busySpot");
    
            }
        }
    }
    

我很快就明白这不行。我试图制作一个公式,可以计算每个位置作为一个普通的数组,但不能使它工作。有没有其他方法可以解决我的问题?

在下面的代码中,我基于两个不同的输入创建了一个二维数组

    var myArray = new Array(numRows);
    for(var i = 0; i <numRows; i++){
        myArray[i] = new Array(numSeatsPerRow);
    }

在下一段代码中,我为所有数组项赋值1,然后为每个项绘制一个绿色框。

for(var h = 0; h<numRows; h++){
        document.body.appendChild(//efter varje rad sker ett <br> i utskriften
        document.createElement("br"));
        document.body.appendChild(
        document.createElement("br"));
        for(var g = 0; g<numSeatsPerRow; g++){              
            myArray[h][g] = 1
                    var vSpot = document.createElement("div");
                    vSpot.className = "vacantSpot";
                    document.body.appendChild(vSpot);


        }
    }

我在顶级代码中尝试做的是给出我谈到另一个类的随机框。

这就是我提出随机坐标的方法:

for(var v = 0; v < 15; v++){
    var test = true;
    while(test){
        var x = Math.floor((Math.random() * numSeatsPerRow) + 0 );
        var y = Math.floor((Math.random() * numRows) + 0);
        if(myArray[x][y] === 1) {
            myArray[x][y] = 3;
            test = false;
        }
    }
}

谢谢!

0 个答案:

没有答案