如何终止forEach的循环遍历

原文参考链接:How to break out of the forEach

背景:

我很喜欢使用Array.prototype.forEach方法,但是有时候我想要break forEach 的循环,好几次我都遇到了这个问题,我无法退出循环! 所以我只能通过再增加一个变量来控制,知道我看到了这篇文章。

Array.prototype.forEach

我该如何退出forEach循环? 好吧....你没有办法从forEach中退出循环

Example:

    var ary = ["JavaScript", "Java", "CoffeeScript", "TypeScript"];

    ary.forEach(function(value, index, _ary) {
        console.log(index + ": " + value);
        return false;
    }); 

结果是: 所有的元素内容都被打印出来了,那我该怎么办?

不要使用"forEach"方法,使用“some”或者"every"方法

Array.prototype.some

some方法和forEach方法很相似,但是当return值为true的时候,它会终止遍历

Example:

    var ary = ["JavaScript", "Java", "CoffeeScript", "TypeScript"];

    ary.some(function (value, index, _ary) {
        console.log(index + ": " + value);
        return value === "CoffeeScript";
    });

结果是:

    0: Javascript
    1: Java
    2: CoffeeScript

Array.prototype.every

every 是一个和some差不多的方法,但是它是当返回值为false的时候退出循环

Example:

    var ary = ["JavaScript", "Java", "CoffeeScript", "TypeScript"];

    ary.every(function(value, index, _ary) {
        console.log(index + ": " + value);
        return value.indexOf("Script") > -1;
    });

结果是:

    0: JavaScript
    1: Java

总结: 抛弃forEach 投向some了! O(∩_∩)O哈哈哈~