我正在尝试创建一个表,当你输入一个值时,它会抓取这些数据,并将1-99之间的随机数放入其中,其中一些可以为空,我在这里使用DOM创建了它
for (i = 0; i < NumberOfCells / NumberOfCellsInRow; i++) {
Row = document.createElement("tr")
Row.setAttribute("id", i + 1 + "tr")
document.getElementById("table").appendChild(Row)
AmountOfRows = i + 1;
}
for (i = 0; i < NumberOfCells; i++) {
temporaryVar = randomInt(1,99, 23)
Cell = document.createElement("td")
Cell.innerHTML = temporaryVar;
Cell.setAttribute("id", i + 1 + "td")
document.getElementById(Math.floor(i/NumberOfCellsInRow+1)
+"tr").appendChild(Cell)
}到目前为止,这个方法运行得很好,但是我想把这个表转换成一个多维数组。我想过要做什么
if (i/NumberOfCellsInRow+1 < NumberOfCellsInRow) {
table.push(new Array(temporaryVar))
}我知道这很接近,但我不知道还能做什么
示例:所有的数字都是随机的,但我会有一个如下所示的表,并且我希望数组看起来像这样
45 10“空白”16
44 53 88“空白”
9“空白”
82 63 43“空白”
所以呢?
table = [45, 10, " ", 16],
[44, 53, 88, " "],
[9, " ", " ", " "],
[82, 63, 43, " "]注意:我不想首先创建数组,以防有任何我想要更改的东西使其中断
发布于 2021-03-10 10:23:19
只需这样编写代码...
const myTable = document.getElementById("table")
for ( let r=0; r < (NumberOfCells / NumberOfCellsInRow); ++r)
myTable.insertRow().id = `${r+1}tr`
for (c=0; c < NumberOfCells; ++c)
{
let Xcell = myTable.rows[(Math.floor(c/NumberOfCellsInRow+1) -1)].insertCell()
Xcell.id = `${c+1}td`
Xcell.textContent = randomInt(1,99, 23)
}
console.log('AmountOfRow', myTable.rows.length )发布于 2021-03-10 10:13:31
所以我想通了,
我添加了几行代码来创建它
for (i = 0; i < NumberOfCells / NumberOfCellsInRow; i++) {
Row = document.createElement("tr")
Row.setAttribute("id", i + 1 + "tr")
document.getElementById("table").appendChild(Row)
AmountOfRows = i + 1;
table.push(new Array()) //added this line
}
for (i = 0; i < NumberOfCells; i++) {
temporaryVar = randomInt(1,99, 23)
Cell = document.createElement("td")
Cell.innerHTML = temporaryVar;
Cell.setAttribute("id", i + 1 + "td")
table[Math.floor(i/NumberOfCellsInRow)].push(temporaryVar) //Added this line
document.getElementById(Math.floor(i/NumberOfCellsInRow+1)
+"tr").appendChild(Cell)
}
}https://stackoverflow.com/questions/66557130
复制相似问题