当前位置: 首页 > 知识库问答 >
问题:

每运行1个外部循环一个运行嵌套循环

燕承安
2023-03-14

我需要12次外循环,每个外循环1次内循环

 for (let i = 0; i <= blocksForRow; i++) {
    const random = Math.floor(Math.random() * 5);
    const block = document.createElement('div');
    block.classList.add('blocks__block')
    block.style.background = randomColors[random]
    fragmentForBlocks.appendChild(block)


    for (let x = 0; x <= blocksForColumn; x++) {
      const block = document.createElement('div');
      block.classList.add('blocks__block')
      block.style.background = 'red'
      fragmentForBlocks.appendChild(block)
    }

例如:

First iteration outer loop --> x iterations of inner loop
Second iteration outer loop --> x iterations of inner loop

但现在我的内循环在第一次迭代的外循环上运行。

请帮助我如何使用for循环执行此操作。

共有3个答案

百里伟
2023-03-14
for (let i = 0; i <= blocksForRow; i++) {
  const random = Math.floor(Math.random() * 5);
  const block = document.createElement('div');
  block.classList.add('blocks__block')
  block.style.background = randomColors[random]

  for (let x = 0; x <= blocksForColumn; x++) {
    const cell = document.createElement('div');
    cell.classList.add('blocks__block')
    cell.style.background = 'red'
    block.appendChild(cell) // append the cell to the row
  }
  fragmentForBlocks.appendChild(block) // append the row
}

试试这个。它应该对你有用。以下是您在上述代码中所做的操作

  • 创建一个div并将x单元格附加到内部循环中的div中
  • 创建一行并附加内部循环div
墨阳羽
2023-03-14

我认为你的循环工作正常。然而,您只需将appendChild添加到fragmentForBlocks,这就是为什么每个块只会将自身添加到第一行。

也许这能解决你的问题。

for (let i = 0; i <= blocksForRow; i++) {
  const random = Math.floor(Math.random() * 5);
  const row = document.createElement('div');     // create a row
  row.classList.add('blocks__block')
  row.style.background = randomColors[random]
  fragmentForBlocks.appendChild(row)            // append row to a thing.

  for (let x = 0; x <= blocksForColumn; x++) {
    const block = document.createElement('div');
    block.classList.add('blocks__block')
    block.style.background = 'red'
    row.appendChild(block);                      // append block to a row
  }
}
阮华美
2023-03-14

也许您可以在外部循环中设置一个var column=blocksForColumn,如下所示:

 for (let i = 0; i <= blocksForRow; i++) {
    var column = blocksForColumn; // added
    const random = Math.floor(Math.random() * 5);
    const block = document.createElement('div');
    block.classList.add('blocks__block')
    block.style.background = randomColors[random]
    fragmentForBlocks.appendChild(block)

    //changed blocksforColumn to column
    for (let x = 0; x <= column; x++) {
      const block = document.createElement('div');
      block.classList.add('blocks__block')
      block.style.background = 'red'
      fragmentForBlocks.appendChild(block)
    }
 }
 类似资料:
  • 问题内容: 和别的: 两者都不起作用(强制关闭应用程序)。我可以尝试其他哪些选择? 问题答案: 您的代码失败,因为您在后台线程中执行睡眠,但是显示数据必须在UI线程中执行。 您必须从runOnUiThread(Runnable)运行displayData或定义处理程序并将消息发送给它。 例如:

  • 问题内容: 在转置矩阵的python中编写此函数: 在此过程中,我意识到我不完全了解嵌套在循环中的单行如何执行。请回答以下问题,以帮助我理解: 此for循环执行的顺序是什么? 如果我有一个三重嵌套的for循环,它将执行什么顺序? 等于未嵌套for循环等于什么? 鉴于 为了将其用于循环结构,对象必须是哪种类型? 将i和j分配给object中的元素的顺序是什么? 可以用不同的for循环结构模拟吗? 可

  • 我想在一个并行外部循环中运行一个包含for循环(应该并行运行)的函数。因此看起来如下所示: 给定上面的代码,我希望在函数中为循环创建5个并行线程,并且希望这5个线程中的每个线程创建另一个线程来运行自己的并行for循环。

  • 我对python中双for循环的使用感到困惑,这是我的代码: 输出如下: 它只对外循环的第一个值执行内循环,为什么会发生这种情况?我怎样才能让它在第一个和第二个变量的所有组合上循环?

  • 我想优化下面的代码。streams会优化下面嵌套的foreach循环吗?如果是这样的话,我是streams的新手,有人能帮我吗?出于项目保密的目的,我在下文中替换了这些名称。应使用tList进行代码中的进一步处理。有人能帮忙吗?

  • 问题内容: 只是一个实验程序。但是第二个for循环似乎没有运行。如果我切换for循环的位置;同样,第二个位置的循环不会运行。为什么会这样呢? 问题答案: 文件不是列表。您不能在不倒退文件对象的情况下循环播放它们,因为完成阅读后文件位置不会重置为开始。 您可以在循环之间添加: 但你会 多 由不循环两次更好。您已经在第一个循环中获得了信息。只需循环 一次 : 您的代码仅对列表进行排序;该列表将不符合要