[英]JS : for loop inside forEach
I'm trying to create 4 canvas
elements inside several div
's using for
loop inside forEach
. 我试图在
forEach
内的for
循环的几个div
创建4个canvas
元素。
Here is a sample code: 这是一个示例代码:
const wavePart = document.querySelectorAll('.waves');
wavePart.forEach(element => {
for (i; i < 4; i += 1) {
let can = document.createElement('canvas');
element.appendChild(can);
}
});
This code only create the 4 canvas inside the first wavePart
only, it doesn't loop through all containers. 该代码仅在第一个
wavePart
内创建4画布,它不会遍历所有容器。 Am I doing something wrong? 难道我做错了什么?
Yes, you're: 是的,您是:
Relying on i
being defined by some containing code, and 依靠
i
由一些包含代码的定义,并且
Not setting an initial value for i
in your loop 没有在循环中为
i
设置初始值
Consequently, i
is left at 4
after the first forEach
callback, and so on any subsequent callbacks, the for
loop body never runs because i < 4
is always false at that point. 因此,在第一个
forEach
回调之后, i
留在4
,因此在任何后续回调中, for
循环主体永远不会运行,因为i < 4
始终为false。
Instead, declare i
locally within your callback, and set it to 0
to start with: 而是在您的回调中本地声明
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);
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.