首页 > 其他分享 >JS中的 map, forEach 无法跳出循环, return和 break不起作用,可以使用every 和 some方法

JS中的 map, forEach 无法跳出循环, return和 break不起作用,可以使用every 和 some方法

时间:2023-03-23 17:58:21浏览次数:42  
标签:map arr return some break item 循环 true

JS中的 map, forEach 无法跳出循环, return和 break不起作用,可以使用every 和 some方法

敲代码的TKP

于 2022-09-01 15:52:47 发布

1711
收藏 1
分类专栏: javaScript es6 文章标签: javascript 开发语言 ecmascript
版权

javaScript
同时被 2 个专栏收录
43 篇文章1 订阅
订阅专栏

es6
1 篇文章0 订阅
订阅专栏
在我们平时使用习惯中,for循环里要跳出整个循环是使用break,但在数组中用forEach循环或者map如要退出整个循环使用break会报错,使用return也不能跳出循环,以下我们就来探索一下正确的跳出循环方案

一、先看一下案例
1、forEach函数
案例1 : 使用break报错
let arr = [1,2,3,4,5];
const a = 3;
arr.forEach( (item, index) => {
if ( item === a ) {
break;
}
console.log( item );
});
1
2
3
4
5
6
7
8


案例2: 使用return不退出循环


2、map函数
案例1 : 使用break报错
let arr = [1,2,3,4,5];
arr.map( item => {
if ( 3 == item ) {
break;
}
console.log( item );
return item;
});
1
2
3
4
5
6
7
8


案例2: 使用return不退出循环
let arr = [1,2,3,4,5];
arr.map( item => {
if ( 3 == item ) {
return;
}
console.log( item );
return item;
});
1
2
3
4
5
6
7
8


二、想跳出循环可以使用every 和 some方法,下面是简单的总结:
1、some : 当内部return true时跳出整个循环
let arr = [1,2,3,4,5];
arr.some( item => {
if ( 3 == item ) {
return true;
}
console.log( item );
});
1
2
3
4
5
6
7


2、every : 当内部return false时跳出整个循环(需要写 return true )
let arr = [1,2,3,4,5];
arr.every( item => {
if ( 3 == item ) {
return false;
}else{
console.log( item );
return true;
}
});
1
2
3
4
5
6
7
8
9

【答疑】两种没写 return true 情况下,打印信息:

【备注】: 这里没写 return true,与写了return true,打印出来的数据是不一样的,大家根据自己需求酌情考虑采用何种方式。
————————————————
版权声明:本文为CSDN博主「敲代码的TKP」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/TKP666/article/details/126644797

标签:map,arr,return,some,break,item,循环,true
From: https://www.cnblogs.com/songsong003/p/17248318.html

相关文章

  • resultType和resultMap区别
    ResultTypeResultType相对与ResultMap而言更简单一点。只有满足ORM(ObjectRelationalMapping,对象关系映射)时,即数据库表中的字段名和实体类中的属性完全一致时,才能使用,否......
  • sqlmap简单使用
    先安装python,再将sqlmap的解压文件复制到python根目录中windows下sqlmap主要命令pythonsqlmap.py-h        //查看帮助信息pythonsqlmap.py-u"url"......
  • 请写一个用python3.x pool.map多进程下载文件的示例代码
    自己改了一下要下载的url,一个网页,一个exe,一个PDFimportrequestsimportmultiprocessingdefdownload_file(url):local_filename=url.split('/')[-1]with......
  • ArcMap将Python写的代码转为工具箱与自定义工具
      本文介绍在ArcMap软件中,通过已有的Python脚本程序,建立新的工具箱并在其中设置自定义工具的方法。  通过本文介绍的操作,我们便可以实现将自己的Python代码封装,并像其......
  • nmap top N端口获取
    使用nmap扫描时可能会扫描tcptop100top1000端口,有时需要去配置文件提取,配置文件路径/usr/share/nmap/nmap-services,具体根据实际安装情况调整:该配置i文件通过统......
  • Cannot resolve symbol 'Mapper'
    准备写一个Mapper接口,可它报错了 上网一查,发现需要添加依赖,于是乎添加呗!<!--mybatis整合Springboot--><dependency><groupId>org.mybatis.spring.boot</gro......
  • map erase删除学习
    转自:https://blog.csdn.net/hjxu2016/article/details/1151373321.eraseC++11中,erase删除迭代器,返回的是下一个元素的迭代器:iteratorerase(const_iteratorposition......
  • Hadoop MapReduce&Eclipse plugin插件安装
    HadoopMapReduce&Eclipseplugin插件安装首先将插件拷贝到eclipse的plugin目录配置hadoop的安装路径选出MapReduce视图设置Map/Reducemaster节点信息然后就可以查看Hdfs......
  • C# 多线程访问之 SemaphoreSlim(信号量)【进阶篇】
    C#多线程访问之SemaphoreSlim(信号量)【进阶篇】 阅读目录一、简介二、用法示例 三、属性or函数or方法释义属性-AvailableWaitHandle属性-CurrentCount......
  • [MyBatis]mapperLocations属性通配符的使用
    示例:<beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean"><propertyname="dataSource"ref="dataSource"/><propertyname="......