javascript - 使用 for of 循环创建 3 个数组的组合
问题描述
我正在尝试列出 3 个数组中的所有字符串组合,并将所有这些组合分配给单独的变量。我只能用两个数组来做,但不能用三个,原因我不知道。这是代码:
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;
}
}
每次我运行代码时,它都能完美运行,除了代码的最后一部分:第三个数组。附件属性始终显示为附件变量的最后一个字符串(关闭窗口)。我不知道该怎么做,或者什么可以解决这个问题。
解决方案
我重写了一点你的代码。我认为它现在会起作用
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;
}
}
}
推荐阅读
- python - 如何查看一个值是否在熊猫的 1 列中有 2 个匹配项
- google-cloud-platform - Google Cloud Run 一遍又一遍地错误运行
- sql - 我可以将此 SQL 代码重写为 querydsl 吗?
- r - R 降价和获取包的问题
- tls1.2 - 使用 tls-crypt 时如何从 Chromebook 连接到 OpenVPN?
- autodesk-forge - 在 Autodesk 查看器中使用 dbids 在对象上绘制标记
- api - 如何在flutter中向graphql API发送post请求
- elasticsearch - Elastic Search 版本冲突问题
- javascript - 如何加快将大型二维数组发送到 Google 表格(Google Apps 脚本)
- c++ - 不存在从到 * 的合适转换