Javascript 对于循环控制台。日志重复

Javascript 对于循环控制台。日志重复,javascript,Javascript,JS代码 问题 我的问题是,我有一个for循环,它通过properties.sizes.width、properties.sizes.height、properties.colors循环,而不是我的程序控制台。问题是,我的console.log应该输出宽度、高度和颜色3次,我在generate中给出了3作为参数。但是当我运行console.log时,您只需要一个循环: for (let i= 0; i < properties.size.width.length; i++) { c

JS代码

问题


我的问题是,我有一个for循环,它通过properties.sizes.width、properties.sizes.height、properties.colors循环,而不是我的程序控制台。问题是,我的console.log应该输出宽度、高度和颜色3次,我在generate中给出了3作为参数。但是当我运行console.log时,您只需要一个循环:

for (let i= 0; i < properties.size.width.length; i++) {
    console.log("Width: ", properties.size.width[i]);
    console.log("Height: ", properties.size.height[i]);
    console.log("Color: ", properties.colors[i]);
}
但是,我建议使用不同的结构,将属于同一对象的所有三个属性放在一起,并将这些对象添加到一个数组中:

函数生成器RectWidth、rectHeight、amount{ //容纳一切 让结果=[]; 对于var i=0;i画 将draw函数更改为loop,使其仅循环您在示例中数量3中指定的次数:

function draw() {
    var amount = 3;
    var properties = generate(50, 50, amount);

    if(properties) {

        for (let i= 0; i< amount; i++) {
                    console.log("Width: ", properties.size.width[i]);
                    console.log("Height: ", properties.size.height[i]);
                    console.log("Color: ", properties.colors[i]);


        }

        return true;

    } else {
        return false;
    }

};

这完全取决于您试图记录的内容,但您得到的是重复的,因为您是从一个for循环中运行console.log,在另一个for循环中运行。您需要调整代码,以便在只登录最外层的for循环时获得所需的结果:似乎所有数组都具有相同的长度…为什么是2个内部循环?我需要遍历所有数组,因为我将使用数组中的值在画布中绘制矩形。
for (let i= 0; i < properties.size.width.length; i++) {
    console.log("Width: ", properties.size.width[i]);
    console.log("Height: ", properties.size.height[i]);
    console.log("Color: ", properties.colors[i]);
}
function draw() {
    var amount = 3;
    var properties = generate(50, 50, amount);

    if(properties) {

        for (let i= 0; i< amount; i++) {
                    console.log("Width: ", properties.size.width[i]);
                    console.log("Height: ", properties.size.height[i]);
                    console.log("Color: ", properties.colors[i]);


        }

        return true;

    } else {
        return false;
    }

};