gpt4 book ai didi

javascript - 嵌套循环迭代

转载 作者:行者123 更新时间:2023-11-28 14:50:19 25 4
gpt4 key购买 nike

我正在使用嵌套循环来迭代数组 bookingArray。如果 bookingArrayroomNumber 与第一个循环 i 的索引匹配,则该 bookingArray 项应推送到新数组tableArray

我遇到了一个问题,即 else 语句中的多个条目被添加到生成的 tableArray 中。它可能与正确使用 break/continue 有关吗?我已阅读文档,但我找不到正确的解决方案。

预期结果:

"1: room booked",
"2: room available",
"3: room available",
"4: room available",
"5: room booked",
"6: room available",
"7: room available",
"8: room available",
"9: room booked",
"10: room available"

当前代码的 fiddle :

var bookingArray = [{
"roomNumber": 1,
},
{
"roomNumber": 5,
},
{
"roomNumber": 9,
}
];

var tableArray = [];


for (var i = 1; i < 11; i++) {
for (var j = 0; j < bookingArray.length; j++) {
if (i == bookingArray[j].roomNumber) {
tableArray.push(bookingArray[j].roomNumber + ": room booked");
break;
} else {
tableArray.push(i + ": room available");
}
}
}

console.log(tableArray);

最佳答案

因为每次外循环迭代,内循环都会运行多次。使用内部循环只是为了设置一个标志,一旦完成,然后根据该标志在每个外部循环迭代中推送一次:

var bookingArray = [{
"roomNumber": 1,
},
{
"roomNumber": 5,
},
{
"roomNumber": 9,
}
];

var tableArray = [];


for (var i = 1; i < 11; i++) {
var isBooked = false;
for (var j = 0; j < bookingArray.length; j++) {
if (i == bookingArray[j].roomNumber) {
isBooked = true;
break;
}
}
var msg = isBooked ? ": room booked" : ": room available";
tableArray.push(i + msg);
}

console.log(tableArray);

关于javascript - 嵌套循环迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44741948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com