gpt4 book ai didi

javascript - ForEach 循环是否允许使用 break 和 continue?

转载 作者:可可西里 更新时间:2023-11-01 02:19:53 25 4
gpt4 key购买 nike

ForEach 循环是否允许我们使用breakcontinue

我试过同时使用两者,但我收到了一个错误:

Illegal break/continue statement

如果允许,我该如何使用它们?

最佳答案

不,它没有,因为你将回调作为返回传递,它作为普通函数执行。

让我说清楚:

var arr = [1,2,3];
arr.forEach(function(i) {
console.log(i);
});

// is like

var cb = function(i) {
console.log(i);
// would "break" here do anything?
// would "continue" here do anything?
// of course not.
}

for(var j = 0; j < arr.length; j++) {
cb(arr[j]);
}

forEach 所做的只是调用一个真实的、实际的函数,您重复地调用它,忽略它是如何退出的,然后在下一个元素上再次调用它。

在那个回调函数中,如果你返回,它会顺便像 forEach 中的 continue 一样工作。因为那个时候函数的其余部分不会执行,它会被再次调用。没有 break.

的类似物

Ruby 支持这种灵 active ,使用 block /过程而不是方法/lambda。

根据 Mozilla's documentation :

Note : There is no way to stop or break a forEach loop. The solution is to use Array.every or Array.some. See example below.

everysomeforEach 完全一样,只是它们关注回调的返回值。 every 会在假值时中断,而 some 会在真值时中断,因为它们短路了。它们与 &&|| 完全类似。 && 测试每个 表达式是否为真,|| 测试some 是否为真,这应该可以帮助您记住如何短路适用于everysome。如有疑问,请尝试。

关于javascript - ForEach 循环是否允许使用 break 和 continue?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22585032/

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