Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Creating combinations of 3 arrays using for of loops

I’m trying to list all combinations of strings from 3 arrays, and assign all of those combinations to separate variables. I’m able to do it with only two arrays, but not with three for a reason I don’t know. This is the code:

var i = 0;
for (var wall of [
    "red walls",
    "blue walls",
    "green walls",
    "pink walls",
    "purple walls",
    "gray walls",
    "white walls"]) {
    for (var floor of [
        "carpet floor",
        "oak-wood floor",
        "spruce-wood floor",
        "acacia-wood floor",
        "birch-wood floor"]) {
        for (var accessory of [
            "no accessory",
            "open window",
            "closed window"])
            var room = [];
            room[i] = {
                wall: wall,
                floor: floor,
                accessory: accessory
            };
            console.log("Room " + i + " - " + room[i].wall + ", " + room[i].floor + ", " + 
room[i].accessory);
            ++i;
    }    
}

Every time I run the code, it works perfectly, except for the last part of the code: the 3rd array. The accessory property always shows up as the last string of the accessory variable (closed window). I have no idea what to do, or what could fix this problem.

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

I rewrited a little bit your code. I think it will work right now

var walls = [
    "red walls",
    "blue walls",
    "green walls",
    "pink walls",
    "purple walls",
    "gray walls",
    "white walls"
];

var floors = [
    "carpet floor",
    "oak-wood floor",
    "spruce-wood floor",
    "acacia-wood floor",
    "birch-wood floor"
]
var accessories = [
    "no accessory",
    "open window",
    "closed window"
]

var i = 0;
for (var wall of walls) {
    for (var floor of floors) {
        for (var accessory of accessories) {
            console.log("Room " + i + " - " + wall + ", " + floor + ", " + accessory);
            ++i;
        }
    }
}
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading