如何在两个循环内访问数组中的对象?
How to access objects in array inside two loops?
我在这个项目中使用 p5.js,
我想制作填充整个 canvas 的矩形,所以我编写了以下代码:
for (let x = 0; x < cols; x++) {
for (let y = 0; y < rows; y++) {
cx = w + x * w - w;
cy = w + y * w - w;
rect(cx, cy, w, w)
}
}
显然它可以工作,但我需要制作一个矩形 class,
但我不知道如何将它们全部绘制到屏幕上,这是创建 class 后的代码,它实际上不起作用...
for (let x = 0; x < cols; x++) {
for (let y = 0; y < rows; y++) {
cx = w + x * w - w;
cy = w + y * w - w;
rects.push(new Rectangle(cx, cy, w));
rects[x * y].show()
}
}
你的索引x * y
有误,你需要:
rects[x * rows + y].show();
但你也可以只取最后一个元素:
rects[rects.length-1].show();
更直观(更易读,更高效)的方法是首先将新对象分配给一个单独的变量:
var rect = new Rectangle(cx, cy, w);
rects.push(rect);
rect.show();
假设您的矩形 class 按照您的要求工作,您只需要将最后一行更改为:
rects[y + (x * rows].show();
摸不着头绪 10 分钟后...您通常会遍历行,然后遍历每一行的列。这会使您的数据从左到右开始,而不是从上到下。
我在这个项目中使用 p5.js, 我想制作填充整个 canvas 的矩形,所以我编写了以下代码:
for (let x = 0; x < cols; x++) {
for (let y = 0; y < rows; y++) {
cx = w + x * w - w;
cy = w + y * w - w;
rect(cx, cy, w, w)
}
}
显然它可以工作,但我需要制作一个矩形 class, 但我不知道如何将它们全部绘制到屏幕上,这是创建 class 后的代码,它实际上不起作用...
for (let x = 0; x < cols; x++) {
for (let y = 0; y < rows; y++) {
cx = w + x * w - w;
cy = w + y * w - w;
rects.push(new Rectangle(cx, cy, w));
rects[x * y].show()
}
}
你的索引x * y
有误,你需要:
rects[x * rows + y].show();
但你也可以只取最后一个元素:
rects[rects.length-1].show();
更直观(更易读,更高效)的方法是首先将新对象分配给一个单独的变量:
var rect = new Rectangle(cx, cy, w);
rects.push(rect);
rect.show();
假设您的矩形 class 按照您的要求工作,您只需要将最后一行更改为:
rects[y + (x * rows].show();
摸不着头绪 10 分钟后...您通常会遍历行,然后遍历每一行的列。这会使您的数据从左到右开始,而不是从上到下。