[1,2,3].forEach(function(el) { if(el === 1) break; });
如何使用forEachJavaScript中的新方法执行此操作?我试过return;,return false;和break。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。 采用 Array#some
而是使用Array#some:
[1, 2, 3].some(function(el) { console.log(el); return el === 2; });
这工作,因为some回报率true只要任何回调,在排列顺序,返回执行true,短路,其余的执行。
some,它的反函数every(将在上停止return false),以及forEach所有ECMAScript Fifth Edition方法,都需要将它们添加到Array.prototype缺少它们的浏览器中。
问题来源于stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。