资讯专栏INFORMATION COLUMN

forEach方法跳出循环

SolomonXie / 1577人阅读

摘要:前文没怎么理解的方法的童鞋使用时很容易遇到一个问题就是,当你想要跳出这个循环时,发现是不起作用的。这里可用于跳出循环。

前文

没怎么理解JavaScript的forEach方法的童鞋使用forEach时很容易遇到一个问题就是,当你想要跳出这个循环时,发现returnbreak是不起作用的。下面我们来分析一下原因以及解决方法。

正文

首先我们要知道的是forEach方法的机制是对数组的每个有效元素执行一次callback函数,然后returnbreak等只作用于一个函数,也就造成了无法跳出forEach循环的问题,而是只能跳过当前函数的执行。

解决方案 曲线救国(SegmentFault)

通过使用抛出异常的方式可以中止。

function foo(arr ,item){
    var BreakException= {};

    try {
        arr.forEach(function(i) {
            if(i === item) throw BreakException;
            console.log(i);
        });
    } catch(e) {
        if (e!==BreakException) throw e;
    }
}
Array.some&Array.every

正常的使用环境:如果是测试一个数组里的元素是否符合某条件,且需要返回一个布尔值则应该使用这两个方法。这里可用于跳出循环。

function foo(arr ,item){
        arr.some(function(i) {
            if(i === item) return true;
            console.log(i);
        });
}
function foo(arr ,item){
        arr.every(function(i) {
            if(i === item) return false;
            console.log(i);
        });
}
循规蹈矩

如果你需要这样,使用forEach()方法是错误的,你可以用一个简单的循环作为替代。—— MDN
对于多重for循环,我们跳出循环需要特殊处理一下:

xh:    //首先将循环命名
 for(var i=0;i<10;i++){
    for(var j=0;j<5;j++){
        if(i==3 && j==4){
            break xh;    //跳出循环xh
        }
    }
 }
参考

https://segmentfault.com/q/10...

https://developer.mozilla.org...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/93353.html

相关文章

  • JavaScript中如何跳出循环/结束遍历

    摘要:中如何跳出循环结束遍历直接抛结论,下表是中常用的实现循环遍历的方法的跳出结束遍历的办法,经过测试后的总结。遍历中返回才会退出执行,而则需要返回才会退出执行。 JavaScript中如何跳出循环/结束遍历 直接抛结论,下表是JS中常用的实现循环遍历的方法的跳出/结束遍历的办法,经过测试后的总结。可能各位大佬还有其他的办法,我在此表示大佬NB。 序号 方法 break continue...

    Simon 评论0 收藏0
  • 使用angularjs.foreach时return的问题

    摘要:解决方案用一个临时变量存储结果,当条件成立相同时将结果改为这样虽然能获得正确的返回值,但却无法阻止的循环想来应该是用在历遍数组元素来做一些操作,像这样的应该用循环比较好一些 在写一个比较数组对象中是否存在一个对象,存在返回true,失败返回false.在return时,发现并没有退出方法,自己测试了一下. 首先先写一个数组对象,然后用angularjs的forEach方法循环比较,当存...

    Youngdze 评论0 收藏0
  • 利用try catch跳出forEach循环

    摘要:利用捕获错误,在里满足条件时抛出错误满足条件抛出错误,立即跳出循环语句允许我们创建自定义错误。直接是捕获不到的。 //利用 try catch 捕获错误,在forEach里满足条件时抛出错误 try{ arr.forEach(item => { if(true){ //满足条件抛出错误,立即跳出循环 //throw 语句允许我们创建自定...

    Hanks10100 评论0 收藏0
  • Javascript 数组循环遍历之forEach

    摘要:是中遍历数组的方法,大部分人常用循环来遍历数组,现在我们来看一下的用法。兼容性和的类型都有的函数。 forEach是javascript中遍历数组的方法,大部分人常用for()循环来遍历数组,现在我们来看一下forEach的用法。 兼容性 Firefox 和Chrome 的Array 类型都有forEach的函数。使用如下: var arryAll = []; arryAll...

    nicercode 评论0 收藏0
  • Iterator 和 for...of 循环

    摘要:和循环遍历器意义为四种数据集合,提供统一的接口机制来处理所有不同的数据结构。调用函数返回一个遍历器对象,代表函数的内部指针。以后,每次调用遍历器对象的方法,就会返回一个有着和两个属性的对象。 Iterator 和 for...of 循环 Iterator(遍历器)意义 为Array、Object、Map、Set四种数据集合,提供统一的接口机制来处理所有不同的数据结构 。 任何数据结构,...

    Drinkey 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<