继续嵌套 for 循环
Posted
技术标签:
【中文标题】继续嵌套 for 循环【英文标题】:Continue in nested for loops 【发布时间】:2019-11-17 21:24:29 【问题描述】:我有 3 个 for 循环:
for (var i = 0; i < ns_match.length; i++)
for (var j = 0; j < user_interest.length; j++)
for (var k = 0; k < ns_match[j].data().user_interest.length; k++)
if (user_interest[j] == (ns_match[i].data().user_interest)[k])
ns_score[i] += 5;
我会添加一个逻辑,例如 if (user_interest[j] == (ns_match[i].data().user_interest)[k])
为真,然后增加 j。
换句话说,我正在寻找诸如:if (user_interest[j] == (ns_match[i].data().user_interest)[k])
之类的东西,如果这是真的,则跳出 K 循环,但在 J 循环中继续一个增量。
【问题讨论】:
是的,break;
...你有什么问题?
如果你想在下一次迭代时跳过循环体的其余部分,你只需要使用continue
。但是身体里没有其他东西可以跳过。
您可以简单地将break;
放入您的if
语句中。这将打破k
,并继续j
。
只是为了传递信息,您可以在 javascript 中为语句添加标签,例如 loop1: for(let i = 0; i<10;i++) ....
,然后从所述循环内的任何地方调用类似 continue loop1
的内容。虽然我认为这在这里不会特别有用,但它是很好的信息,而不是 Javascript 中经常记录的东西。 break
语句也是如此。
一般情况下,you can always use labels.
【参考方案1】:
使用 break 命令跳出当前循环块。
如果您需要跳出不同于最内层的循环,您可能需要研究所谓的“标签”
【讨论】:
以上是关于继续嵌套 for 循环的主要内容,如果未能解决你的问题,请参考以下文章