Home > Back-end >  Creating combinations of 3 arrays using for of loops
Creating combinations of 3 arrays using for of loops

Time:11-07

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.

CodePudding user response:

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;
        }
    }
}
  • Related