【发布时间】: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.
标签: javascript algorithm for-loop continue