[1,2,3].forEach(function(el) {
if(el === 1) break;
});
我怎样才能使用新的来做到这一点forEach
JavaScript 中的方法?我试过了return;
, return false;
and break
. break
崩溃和return
除了继续迭代之外什么也不做。
没有内置的能力break
in forEach
。要中断执行,您必须抛出某种异常。例如。
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 异常并不是非常漂亮。一个传统的for
如果您确实需要,循环可能更合适break
在里面。
Use Array#some https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array/some
相反,使用Array#some https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array/some:
[1, 2, 3].some(function(el) {
console.log(el);
return el === 2;
});
这有效是因为some
回报true
一旦按数组顺序执行的任何回调返回true
,短路其余部分的执行。
some
,其倒数every https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array/every(这将停止在return false
), and forEach
都是 ECMAScript 第五版方法,需要添加到Array.prototype
在缺少它们的浏览器上。
Use Array#every https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array/every
[1, 2, 3].every(v => {
if (v > 2) {
return false // "break"
}
console.log(v);
return true // must return true if doesn't break
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)