首页 > 编程语言 >[JavaScript] JS中如何跳出循环/结束遍历

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

时间:2023-12-12 22:56:25浏览次数:43  
标签:跳出 遍历 return Illegal SyntaxError JavaScript JS 循环 statement

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

直接抛结论,下表是JS中常用的实现循环遍历的方法的跳出/结束遍历的办法,经过测试后的总结。可能各位大佬还有其他的办法,我在此表示大佬NB。

 

序号方法breakcontinuereturnreturn truereturn false结论
1 for循环 成功 跳出本次循环 不合法 不合法 不合法
2 Array.forEach() 不合法 不合法 跳出本次循环 跳出本次循环 跳出本次循环 ×
3 for...in 成功 跳出本次循环 不合法 不合法 不合法
4 Array.map() 不合法 不合法 跳出本次循环 跳出本次循环 跳出本次循环 ×
5 Array.some() 不合法 不合法 跳出本次循环 成功 跳出本次循环
6 Array.every() 不合法 不合法 成功 跳出本次循环 成功
7 Array.filter() 不合法 不合法 跳出本次循环 跳出本次循环 跳出本次循环 ×

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);
})

 

标签:跳出,遍历,return,Illegal,SyntaxError,JavaScript,JS,循环,statement
From: https://www.cnblogs.com/Im-Victor/p/17898048.html

相关文章

  • 几种简单的排序算法(js实现)
    排序是日常开发中经常用到的代码,下面是几种常见的排序算法:冒泡排序(BubbleSort)functionbubbleSort(arr){letlen=arr.length;for(leti=0;i<len-1;i++){for(letj=0;j<len-1-i;j++){if(arr[j]>arr[j+1]){......
  • js29
    1、使用requests的get()函数访问必应网站20次,打印返回状态,text()内容,计算text属性和content属性所返回网页内容的长度。代码如下:importrequestsforiinrange(20):r=requests.get('https://cn.bing.com',verify=False)r.encoding="utf-8"print(r.status_code)......
  • Java登陆第二十三天——JavaScript对象、JSON、事件
    JS中声明对象的两种格式方法1,newobject()然后依次添加属性或方法栗子:<script>//初始化对象varuser=newObject();//给对象添加属性并赋值user.name="张三";user.age=18;//给对象添加方法user.say=functi......
  • vscode settings.json
    {"workbench.startupEditor":"none","workbench.iconTheme":"vscode-icons","workbench.colorTheme":"Dracula","window.title":"${rootName}${separator}${profileName}",......
  • JavaScript 中栈与堆的区别
    每种编程语言都具有内建的数据类型,但它们的数据类型常有不同之处,使用方式也很不一样,比如C语言在定义变量之前,就需要确定变量的类型。在声明变量之前需要先定义变量类型。我们把这种在使用之前就需要确认其变量数据类型的称为静态语言。相反地,我们把在运行过程中需要检查数据类型......
  • json to dart插件的使用
    先说一种andriodstudio中的一个插件,就叫jsonto dart,你把json文件粘贴过去,然后他可以直接生成dart对象文件,但是通常需要自定义一些配置,否则代码很难读。下面是命令的形式在Flutter开发中,你可以使用一些插件来将JSON转换为Dart类。其中一个常用的插件是dart:convert包提供的......
  • Python——第五章:json模块
    什么是json:json模块是用于处理JSON(JavaScriptObjectNotation)数据的模块,翻译过来叫js对象简谱。JSON是一种轻量级的数据交换格式,常用于将数据在不同语言之间进行传递。我们先来看一段json代码:wf={"name":"汪峰","age":18,"hobby":"上头条","wife"......
  • nodejs的http.request最大响应体
    nodejs的http.request躺坑记录1、http.request之response.on("data",(chunk:Buffer)=>{})的chunk大小​ 由于nodejs的response.on("data")每次从服务端读取的chunk大小最大是65535Byte,并且查很多网站都找不大这个说明点所以狠狠踩了这个坑。这个65535有什么影响呢。本来编写的......
  • 12.12邻接表存储实现图的深度优先遍历(c++)
    今天学习了数据结构中的邻接表存储实现图的深度优先遍历,其中让我受益匪浅,以下是我的解题思路。编写程序,实现由邻接表存储实现无向图的深度优先搜索遍历的功能。顶点为字符型。输入格式:第一行输入顶点个数及边的个数,第二行依次输入各顶点,第三行开始依次输入边的两个顶点,用空格......
  • JSSDK获取signature签名,史上最全,没有之一
    微信公众号JSSDK获取signature签名,史上最全,没有之一1.操作流程1、通过appId和appSecret获取access_token;2、使用access_token获取jsapi_ticket;3、用时间戳、随机数、jsapi_ticket和要访问的url按照签名算法拼接字符串;4、对第三步得到的字符串进行SHA1加密,得到签名。2.上代码获取a......