forEach for 循环跳出问题
之所以写这篇文章是在实际使用中有一些困惑;那么在for循环中使用什么来跳出循环呢,在forEach中又是使用什么来结束循环呢?
先看下代码
function test(arr){for (let i = 0; i < arr.length; i++) {console.log('1',arr[i])if (i === 2){break}}arr.forEach((item,index) => {console.log('2',item)if (index === 2){return}})
}test([1,2,3,1])
输出如下
1 1
1 2
1 32 1
2 2
2 3
2 1
由此可见,在for循环中使用 break是可以跳出循环的,再来看看使用return的情况
function test(arr){for (let i = 0; i < arr.length; i++) {console.log('1',arr[i])if (i === 2){return}}arr.forEach((item,index) => {console.log('2',item)if (index === 2){return}})
}test([1,2,3,1])
输出如下
1 1
1 2
1 3
可见这是直接跳出了整个test函数,也相当于跳出了循环,但下面的forEach不执行了,也就是说在for循环中使用return会切断当前函数的执行线程
至于forEach的话,在第一种情况中已经中已经能够体现出来了,可见在forEach中使用return既不会跳出循环,也不会杀掉当前函数的执行线程,对于这种情况可以使用arr.some()或者arr.every()替代
some()当内部 return true 时跳出整个循环:
every()当内部 return false 时跳出整个循环(但是该方法false和true两种状态都要写全,保证两个分支均能正常工作或输出),如下
arr.every(function(val,i){if(val==3){return false; //注意这里是return false }else{ console.log(val);return true; //注意这里的 return true 必须加上,不然会异常(打印不出2)}
})
forEach for 循环跳出问题相关推荐
- foreach数组循环结构体
foreach数组循环结构体 foreach循环遍历任何维数的数组 Systemverilog增加了foreach循环,它可用来对一维或多维数组中的元素进行迭代,而不必指定数组每个维度的宽度.fore ...
- PHP中foreach遍历循环的使用(两种用法)
foreach在循环遍历数组时是很便利的,PHP提供了两种方法:1. 输出不显下标 2.输出显示下标 (注意: foreach不支持@消除错误信息) 题目如图 输出不显下标: foreach($ st ...
- 易优cms foreach 数据循环输出标签
[基础用法] 标签:foreach 描述:数据/记录循环输出标签(注:类似与volist标签,只是更加简单,没有太多额外的属性.) 用法: {eyou:channel type='top'} {eyo ...
- es6 forEach/map循环中断
1.for循环在循环的时候 通过continue中断当次循环 通过break中断整个循环 通过retrun中断函数执行 2.es6的forEach/map循环只能通过return中断当次循环 //目的 ...
- java中跳出循环终止循环_js for终止循环 跳出多层循环
今天写带代码的时候遇到一段代码,需要终止运行for,通过遍历json数据实现判断 var Tid="55555"; var jb51cp = [ {id:66666,Cpurl:& ...
- tp5循环查询语句_tp5 foreach 套循环的优化(就是foreach 里边再查表)
优化建议: 1.不要foreach里边再查询表,因为循环多次查表会很占资源的 2.没有办法就关联表查询join 例子: 原写法: $rsdo=Db::name('order')->field(' ...
- js 循环拆词_javascript forEach通用循环遍历方法
循环遍历一个元素是开发中最常见的需求之一,那么让我们来看一个由框架BASE2和Jquery的结合版本吧. 上一次的错误太多,排版也出现了问题,重写了一遍,希望大家支持. 循环遍历一个元素是开发中最常见 ...
- forEach for 循环
前言:foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组.foreach 语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用. 能够应用的编程语言类别 ...
- 测试Unity中常用代码的运行所需时间:循环和函数篇 #性能测试 # for,foreach,while循环 #委托事件
C# 循环和函数篇 〇.前言 系统自带计时器 -System.Diagnostics.StopWatch- 的使用 一.循环类型测试 1. for 循环测试 (1). 前后置自增自减测试 (2). 与 ...
最新文章
- Excel中如何截取字符串中指定字符后的部分字符
- 慕课的原型图快速变html,分享一个html转换为pdf 利器 Pechkin
- InfoQ专访:人工智能时代,什么才是你的最大竞争力?
- 热点效应是指_热电偶的热电效应是什么意思 浅谈热电偶下的热点效应
- 麦克风设计指导与选型参考
- python 二项分布_二项分布的理论基础、应用及Python实践
- java 中文 音序,java 中文字符串数组按照音序排列
- Android Multimedia框架总结(四)MediaPlayer中从Java层到C++层类关系及prepare及之后其他过程
- java中如何表示圆周率
- 巨头林立的音频赛道,喜马拉雅如何讲好资本故事?
- Kotlin 的静态代码分析工具
- 深入浅出Stream和parallelStream
- python入门论坛_PythonTab:Python中文开发者社区门户
- [k8s]非集群安装过程-笔记
- C++静态库与动态库的区别?
- mysql limit括号_MYSQL中LIMIT使用简介
- 金鹰Authorware视频教程
- zabbix监控部署
- R语言rlist包的使用
- havc是什么意思_HVAC系统是什么?
热门文章
- 后pc时代和新一代计算机定义,嵌入式系统:后PC时代的擎天之柱-可编程逻辑-与非网...
- html、css和js原生写一个模态弹出框,顺便解决父元素半透明子元素不透明效果...
- sys 系统库 笔记(一)—— 简介与快速入门
- Unity WEBGL设置浏览器全屏
- ubuntu10.04换官方源
- Linux小知识---常见的IO复用技术
- ApacheCN 翻译活动进度公告 2019.4.23
- 【优化】超详细的LMS算法的matlab实现
- CANoe测试的两种方式Test Module 和 Test Unit对比,你常用哪种呢?
- es6的reduce用于求数组总和