javascript - JS : for loop inside forEach

标签 javascript loops for-loop foreach

我正在尝试使用 forEach 内的 for 循环在多个 div 内创建 4 个 canvas 元素.

这里是一个示例代码:

const wavePart = document.querySelectorAll('.waves');
wavePart.forEach(element => {
  for (i; i < 4; i += 1) {
    let can = document.createElement('canvas');
    element.appendChild(can);
   }
});

此代码仅在 first wavePart 内创建 4 个 Canvas ,它不会循环遍历所有容器。我做错了什么吗?

最佳答案

是的,你是:

  1. 依靠i由某些包含代码定义,并且

  2. 未设置 i 的初始值在你的循环中

因此,i留在 4第一个之后forEach回调,等等任何后续回调,for循环体永远不会运行,因为 i < 4此时总是错误的。

相反,声明 i在本地回调中,并将其设置为 0首先:

const wavePart = document.querySelectorAll('.waves');
wavePart.forEach(element => {
  for (let i = 0; i < 4; i += 1) {
  //   ^^^^^^^^^
    let can = document.createElement('canvas');
    element.appendChild(can);
   }
});

关于javascript - JS : for loop inside forEach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47754653/

相关文章:

javascript - Angular 1 : populate table with ng-repeat using a 2-d array from server's json

javascript - 处理修复数据集的最佳方法

ruby - 有没有办法删除文本文件中与特定文本匹配的行?

C中连接四个游戏板

检索新添加的行的索引 - R 中的 for 循环

javascript - 从 html 下拉菜单中选择后,重定向页面并通过 url 传递选择值?

javascript - jQuery 多选显示/隐藏

php - 如何将两个数组组合成一个循环?

c# - 为什么将 VB.NET 代码迁移到 C# 时 for 循环的行为不同?

javascript - Node.js 文件系统 - 添加新文件时读取文件夹中的文件