繁体   English   中英

如何在两个循环内访问数组中的对象?

[英]How to access objects in array inside two loops?

我在这个项目中使用 p5.js,我想制作将填充整个画布的矩形,所以我编写了以下代码:

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)
    }
}

显然它有效,但我需要制作一个矩形类,但我不知道如何将它们全部绘制到屏幕上,这是创建类后的代码,它并没有真正起作用......

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();

假设您的矩形类按照您希望的方式工作,您只需要将最后一行更改为:

rects[y + (x * rows].show();

10 分钟后,我摸不着头脑……您通常会遍历行,然后遍历每行的列。 这会将您的数据从左到右,而不是从上到下。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM