Estoy tratando de enumerar todas las combinaciones de cadenas de 3 matrices y asignar todas esas combinaciones a variables separadas. Puedo hacerlo con solo dos matrices, pero no con tres por una razón que no sé. Este es el código:
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; } }
Cada vez que ejecuto el código, funciona perfectamente, excepto por la última parte del código: la tercera matriz. La propiedad accessory siempre aparece como la última cadena de la variable accessory (ventana cerrada). No tengo ni idea de qué hacer, o lo que podría solucionar este problema.
Reescribí un poco tu código. Creo que funcionará ahora mismo.
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; } } }