52ky 发表于 2022-5-4 15:26:11

使阵列短路。 forEach 类调用中断

.forEach(function(el) {
    if(el === 1) break;
});
如何使用 JavaScript 中的新 forEach 方法来实现这一点?我试过退货; ,返回假;并打破。打破崩溃并继续迭代。

回答
break 中没有内置的 forEach 函数。要中断执行,必须抛出某种异常。如。
var BreakException = {};

try {
.forEach(function(el) {
    console.log(el);
    if (el === 2) throw BreakException;
});
} catch (e) {
if (e !== BreakException) throw e;
}
JavaScript 异常不是很漂亮。如果你真的需要在循环中使用 for 循环,那么传统的循环可能更合适。

休息

相反,使用 Array#some :

数组#一些
.some(function(el) {
console.log(el);
return el === 2;
});
这是因为只要按数组顺序执行的任何回调返回,其余回调的执行就会短路,返回一些 .

true ,它的反向 true (将在 some 上停止),并且每个都是 ECMAScript 第 5 版方法,需要添加以在缺少它们的浏览器上返回 false。



页: [1]
查看完整版本: 使阵列短路。 forEach 类调用中断