forEach 如何跳出遍历

本贴最后更新于 1784 天前,其中的信息可能已经天翻地覆

解决问题的第一途径,最好从接口文档里面寻找方法。

直接引用原文:


注意: 除了抛出异常以外,没有办法中止或跳出 forEach() 循环。如果你需要中止或跳出循环,forEach() 方法不是应当使用的工具。

若你需要提前终止循环,你可以使用:

这些数组方法则可以对数组元素判断,以便确定是否需要继续遍历:

译者注:只要条件允许,也可以使用 filter() 提前过滤出需要遍历的部分,再用 forEach() 处理。


看看别人写的代码:

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

总结:some 替代 forEach。

其他参考:
1.https://segmentfault.com/a/1190000018826980
2.http://annvov.github.io/forEach.html

  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    729 引用 • 1327 回帖
  • 开发
    38 引用 • 159 回帖 • 2 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...