[1,2,3].forEach(function(el) { if(el === 1) break; });
如何使用forEachJavaScript中的新方法执行此操作?我试过return;,return false;和break。break崩溃,return除了继续迭代外什么也不做。
forEach
return;
return false;
break
return
有没有内置的能力break的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。
for
Array#some
而是使用Array#some:
[1, 2, 3].some(function(el) { console.log(el); return el === 2; });
之所以some可行,true是因为只要按数组顺序执行任何回调,就返回return true,从而使其余部分的执行短路。
some
true
some,它的反函数every(将在上停止return false),以及forEach所有ECMAScript Fifth Edition方法,都需要将它们添加到Array.prototype缺少它们的浏览器中。
every
return false
Array.prototype