资讯专栏INFORMATION COLUMN

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

Simon / 3469人阅读

摘要:中如何跳出循环结束遍历直接抛结论,下表是中常用的实现循环遍历的方法的跳出结束遍历的办法,经过测试后的总结。遍历中返回才会退出执行,而则需要返回才会退出执行。

JavaScript中如何跳出循环/结束遍历
直接抛结论,下表是JS中常用的实现循环遍历的方法的跳出/结束遍历的办法,经过测试后的总结。可能各位大佬还有其他的办法,我在此表示大佬NB。
序号 方法 break continue return return true return false 结论
1 for循环 成功 跳出本次循环 不合法 不合法 不合法
2 Array.forEach() 不合法 不合法 跳出本次循环 跳出本次循环 跳出本次循环 ×
3 for...in 成功 跳出本次循环 不合法 不合法 不合法
4 Array.map() 不合法 不合法 跳出本次循环 跳出本次循环 跳出本次循环 ×
5 Array.some() 不合法 不合法 跳出本次循环 成功 跳出本次循环
6 Array.every() 不合法 不合法 成功 跳出本次循环 成功
7 Array.filter() 不合法 不合法 跳出本次循环 跳出本次循环 跳出本次循环 ×
forEachmapfilter目前我不知有什么办法停止遍历,在其他几种方法中,上表中列出的方法均可实现结束循环。
1. for循环
var arr = ["a", "b", "c", "d", "e"];
var show = [];

for (var i = 0; i < arr.length; i++) {
    if (i === 2) {
        break;// ["a", "b"] 成功跳出循环
        // continue;// ["a", "b", "d", "e"] 只能跳出本次循环
        // return;// Uncaught SyntaxError: Illegal return statement
        // return true;// Uncaught SyntaxError: Illegal return statement
        // return false;// Uncaught SyntaxError: Illegal return statement
    }
    show.push(arr[i]);
}
2. Array.forEach()
var arr = ["a", "b", "c", "d", "e"];
var show = [];

arr.forEach((item, index) => {
    if (index === 2) {
        // break;// Uncaught SyntaxError: Illegal break statement
        // continue;// Uncaught SyntaxError: Illegal continue statement: no surrounding iteration statement
        // return;// ["a", "b", "d", "e"] 只能跳出本次循环
        // return true;// ["a", "b", "d", "e"] 只能跳出本次循环
        // return false;// ["a", "b", "d", "e"] 只能跳出本次循环
    }
    show.push(item);
})
3. for...in...
var arr = ["a", "b", "c", "d", "e"];
var show = [];

for (var item in arr) {
    if (item === "2") {
        break;// ["a", "b"] 跳出循环成功
        // continue;// ["a", "b", "d", "e"] 只能跳出本次循环
        // return;// Uncaught SyntaxError: Illegal return statement
        // return true;// Uncaught SyntaxError: Illegal return statement
        // return false;// Uncaught SyntaxError: Illegal return statement
    }

    show.push(arr[item]);
}
4. Array.map()
var arr = ["a", "b", "c", "d", "e"];
var show = [];

arr.map((item, index) => {
    if (index === 2) {
        // break;// Uncaught SyntaxError: Illegal break statement
        // continue;// Uncaught SyntaxError: Illegal continue statement: no surrounding iteration statement
        // return;// ["a", "b", "d", "e"] 只能跳出本次循环
        // return true;// ["a", "b", "d", "e"] 只能跳出本次循环
        // return false;// ["a", "b", "d", "e"] 只能跳出本次循环
    }
    show.push(item);
})
5. Array.some()
var arr = ["a", "b", "c", "d", "e"];
var show = [];

arr.some((item, index) => {
    if (index === 2) {
        // break;// Uncaught SyntaxError: Illegal break statement
        // continue;// Uncaught SyntaxError: Illegal continue statement: no surrounding iteration statement
        // return;// ["a", "b", "d", "e"] 只能跳出本次循环
        return true;// ["a", "b"] 成功跳出循环
        // return false;// ["a", "b", "d", "e"] 只能跳出本次循环
    }
    show.push(item);
})
6. Array.every()
var arr = ["a", "b", "c", "d", "e"];
var show = [];

arr.every((item, index) => {
    if (index === 2) {
        // break;// Uncaught SyntaxError: Illegal break statement
        // continue;// Uncaught SyntaxError: Illegal continue statement: no surrounding iteration statement
        // return;// ["a", "b"] 成功跳出循环
        // return true;// ["a", "b", "d", "e"] 只能跳出本次循环
        return false;// ["a", "b"] 成功跳出循环
    }
    return show.push(item);
})
some()every()不同,some遍历中一个为真全部即为真,而every遍历中全部为真才行。some遍历中返回true才会退出执行,而every则需要返回false才会退出执行。
7. Array.filter()
var arr = ["a", "b", "c", "d", "e"];
var show = [];

arr.filter((item, index) => {
    if (index === 2) {
        // break;// Uncaught SyntaxError: Illegal break statement
        // continue;// Uncaught SyntaxError: Illegal continue statement: no surrounding iteration statement
        // return;// ["a", "b", "d", "e"] 只能跳出本次循环
        // return true;// ["a", "b", "d", "e"] 只能跳出本次循环
        return false;// ["a", "b", "d", "e"] 只能跳出本次循环
    }
    show.push(item);
})

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

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

相关文章

  • 细数 JavaScript 实用黑科技(一)

    摘要:小汪经过实践得出以下用途。空数组的类型也是,这表示在内部,数组本质上只是一种特殊的对象。调用函数时,某个参数未设置任何值,这时就可以传入,表示该参数为空。前端还是很有未来的下节内容细数实用黑科技二。 showImg(https://segmentfault.com/img/remote/1460000016507838); 前言 只有深入学精一门语言,学其他语言才能更好地举一反三,触类...

    ConardLi 评论0 收藏0
  • 重新巩固JS(三)——JavaScript语句

    摘要:重新巩固系列,都是比较基础的东西,可以进行查漏补缺,很快看完,这是第三篇。其中,部分可以省略条件语句语句例子为,小于但大于,故输出语句当表达式的值等于值时,执行语句,遇到语句则跳出语句,若都没匹配到值,则执行中的语句。重新巩固JS系列,都是比较基础的东西,可以进行查漏补缺,很快看完,这是第三篇。 其他JS重新巩固系列: 重新巩固JS(一)——JavaScript基本类型 重新巩固JS(二)...

    tunny 评论0 收藏0
  • Javascript各种数组遍历方法归纳总结和兼容写法

    摘要:主要用于枚举对象数组遍历效率最低的方法。当前数组元素的值。传递给函数的初始值注意对于空数组是不会执行回调函数的。 前言 PS: 2018/04/26 优化一下排版,重新梳理一下方法,补充一些信息,删除JQuery库用法,只讲解Javascript自带的, for in 语句用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。主要用于枚举对象, 数组遍历效率最低的方法。 va...

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

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

    Drinkey 评论0 收藏0
  • 二叉树的非递归遍历

    摘要:中序遍历概念中序遍历指先遍历节点的左子树,再访问节点,最后遍历节点的右子树,按照这种规则不重复地访问树中所有节点的过程。用栈保存经过的待访问的节点,栈顶节点表示正在遍历节点的左子树。同时,说明栈顶节点的左子树遍历结束。 中序遍历 概念 「中序遍历」指先遍历节点的左子树,再访问节点,最后遍历节点的右子树,按照这种规则不重复地访问树中所有节点的过程。 思路 showImg(https://...

    mudiyouyou 评论0 收藏0

发表评论

0条评论

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