在JavaScript中中断forEach方法的首选方法
Preferred way to break a forEach method in JavaScript
我刚刚在JavaScript中使用forEach
方法来汇总数组中的所有元素。突然觉得有必要在某些条件下打破循环,例如限制要计算的总和。我想出了以下解决方案。如果我错了,就指着我。
对该进行小编辑
function foreach(a) {
var sum = 0;
var breakException = {error:"stop it"};
try {
a.forEach(function (v) {
sum += v;
console.log(sum);
if(sum>5) throw breakException.error;
});
return sum;
}
catch(e) {
if(e!=breakException){
throw e;
}
}
}
forEach
不应该中断。如果你想打破一个类似forEach
的循环,可以试试every
或some
,它们可以让你打破这个循环。
重新编写代码的一种可能方法是
var sum = 0;
yourArray.some(function (item) {
if (sum > 5) {
return true;
}
sum += item;
});
您无法突破forEach
。只需使用正常循环
for(var i = 0; i < a; i++){
sum += a[i];
if(sum > 5) break;
}
您当前的代码看起来有点傻。
你的try/catch块是无用的,因为你从来没有抛出错误让catch块捕获,然后重新抛出(?),你不需要alert("break");
来停止脚本。
无论如何,你都无法突破forEach
循环,我想你只想使用一个正常的for循环:
function sum(list){
var sum = 0;
for (var i = 0, len = list.length; i < len; i++){
sum += list[i];
if (sum > 5){
break;
}
}
return sum;
}
相关文章:
- 在JavaScript中中断forEach方法的首选方法
- 将id/类放在HTML中的正确方法是使用foreach来获得确切的值
- 不能调用未定义节点.js的方法“forEach”
- 每次迭代在 Foreach 循环中重复 PHP 睡眠方法
- 如何删除“对象在节点中没有方法'forEach'错误.js”
- 使用 forEach 方法修改 dom 元素
- JavaScript 方法 array.forEach 在 Chrome 中工作吗?
- MongoDB aggregate() - 错误“TypeError: 无法调用未定义的方法'forEach
- 不理解此forEach()方法的输出
- 使用敲除foreach绑定绑定方法名称
- 回调函数的定义以及它如何适用于array.prototype.forEach/map/filter方法
- Jquery.ech()和Array.prototype.forEach()方法的区别
- 如何在knockout.js中的foreach中使用computed方法
- 使用Array.prototype.forEach()方法
- 在Foreach循环中调用Async方法
- JavaScript: Internet Explorer不支持forEach方法
- AngularJS: forEach http get data -等待其他方法,直到所有来自循环的数据被加载
- 为什么字符串变量可以通过JS中的调用使用forEach方法
- node.js:如何在forEach循环中实现一个带有异步调用的路由方法
- 类型错误:无法调用未定义的方法“forEach”