[1,2,3].forEach(function(el) {
if(el === 1) break;
});
如何使用 JavaScript 中的新 forEach
方法来做到这一点?我试过 return;
、return false;
和 break
。 break
崩溃,return
除了继续迭代什么都不做。
最佳答案
forEach
中没有内置的break
功能。要中断执行,您必须抛出某种异常。例如。
var BreakException = {};
try {
[1, 2, 3].forEach(function(el) {
console.log(el);
if (el === 2) throw BreakException;
});
} catch (e) {
if (e !== BreakException) throw e;
}
JavaScript 异常并不是非常漂亮。如果您确实需要在其中 break
,则传统的 for
循环可能更合适。
使用 Array#some
改为使用 Array#some
:
[1, 2, 3].some(function(el) {
console.log(el);
return el === 2;
});
这是因为 some
返回 true
任何回调,按数组顺序执行,返回 true
,短路其余部分的执行。
一些
,它的逆every
(将在 return false
处停止)和 forEach
都是 ECMAScript 第五版方法,需要添加到 Array.prototype
在缺少它们的浏览器上。
关于javascript - 短路 Array.forEach 就像调用 break,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2641347/