【JS】for 与 forEach 分别如何跳出循环

news2025/1/20 15:44:26

for 循环

在 for 循环中,退出循环的两种方式:

  • break; 退出整个循环
  • continue; 退出当次循环
let array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
for (let i = 0; i < array.length; i++) {
 if (array[i] === 6) {
   // break; // 退出整改循环,
   continue; // 退出当次循环
 }

 // 其他操作...
 console.log('Loop:', array[i]);
}

// 某种情况下,也可以使用 return 完成终止循环

break 退出整个循环
在这里插入图片描述
continue 退出当次循环

在这里插入图片描述

forEach

在JavaScript中,forEach方法是用于遍历数组的方法,它会对数组中的每个元素执行指定的操作。

forEach方法本身并不提供直接的方式来跳出循环,但你可以使用一些技巧来跳出循环模拟跳出循环的效果

方法一:try{}catch(){} 结合 throw 抛错的方式退出循环

let array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
try {
  array.forEach((element) => {
    if (element === 6) throw new Error('End Loop!')
    // 其他操作
    console.log('Loop:', element)
  })
} catch (e) {
  console.log(e)
}

在这里插入图片描述

方法二:是使用一个标志变量,通过控制该变量的值来跳出循环


let array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
// 定义一个变量
let isBreak = false;
array.forEach((item) => {
  console.log("其实每次都会循环:", item);

  // 某个条件满足时设置 isBreak 为 true,方便跳出循环
  if (item > 4) {
    isBreak = true;
  }

  // 检查是否需要跳出循环
  if (isBreak) {
    return; // 终止当次循环,但会继续执行下一次循环,下一次循环会继续判断
  }

  // 其他操作...
  console.log('其他操作:', item);
});

在这里插入图片描述

在上述示例中,通过设置 isBreak 变量为 true,在下一次迭代开始之前使用 return 中断了当前的迭代,从而模拟了跳出循环的效果。

需要注意的是,这种方法只能跳出当前的迭代,而不能直接跳出整个 forEach 循环。如果你需要完全跳出 forEach 循环,可以考虑使用其他循环结构,如 for 循环或 while 循环,以便更好地控制循环的流程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/895681.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高并发内存池(centralcache)[2]

Central cache threadcache是每个线程独享&#xff0c;而centralcache是多线程共享&#xff0c;需要加锁&#xff08;桶锁&#xff09;一个桶一个锁 解决外碎片问题&#xff1a;内碎片&#xff1a;申请大小超过实际大小&#xff1b;外碎片&#xff1a;空间碎片不连续&#x…

能耗分析在医院节能中的管理

摘要&#xff1a;医院作为特殊的公共建筑&#xff0c;能耗较大且逐年攀升&#xff0c;具有较大的节能潜力。结合天津市某医院的用能概况、智慧管理平台的建设和使用&#xff0c;对大量能耗数据进行了研究和分析&#xff0c;通过将能源管理系统、数据分析与节能工作相结合&#…

在Visual Studio中使用 //TODO注释

在软件开发过程中&#xff0c;注释是非常重要的&#xff0c;它们可以帮助开发者理解代码的功能和逻辑。​有时候我们只需要标记出一些临时性的、需要后续处理的代码片段。这时候&#xff0c;我们可以使用一种特殊的注释&#xff1a;//TODO注释。 //TODO注释是一种轻量级的注释…

【项目实践】基于LSTM的一维数据扩展与预测

基于LSTM的一维数据拟合扩展 一、引(fei)言(hua) 我在做Sri Lanka生态系统服务价值计算时&#xff0c;中间遇到了一点小问题。从世界粮农组织(FAO)上获得Sri Lanka主要农作物产量和价格数据时&#xff0c;其中的主要作物Sorghum仅有2001-2006年的数据&#xff0c;而Millet只有…

2011年下半年 软件设计师 上午试卷2

博主介绍&#xff1a;✌全网粉丝3W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

新宝马M5谍照曝光,侵略感十足,将与奥迪、梅赛德斯-AMG正面竞争

报道称&#xff0c;宝马即将推出全新一代M5&#xff0c;该车的谍照最近再次曝光。早先&#xff0c;宝马 M5 Touring 旅行汽车的赛道测试图片已经在网络上流传开来&#xff0c;预计该车将与奥迪的RS6 Avant和梅赛德斯-AMG E63 Estate展开正面竞争。 从最新曝光的照片来看&#x…

区块链碎碎念

现在的区块链早已过了跑马圈地的时代&#xff0c;现在还按照以前承接项目的方式做区块链只能是越来越艰难。经过几年的技术沉淀&#xff0c;做区块链项目的公司都已经没落的七七八八了。 区块链不是一个能够快速显现盈利能力的行业&#xff0c;相反这个行业目前的模式还是处于…

【Datawhale暑期实践第三期】用户新增预测挑战赛

文章目录 赛题背景赛事任务赛题数据集评价指标赛题思路Baseline导入包并读取数据特征工程决策树模型训练和预测保存预测文件 赛题名称&#xff1a;用户新增预测挑战赛 赛题类型&#xff1a;数据挖掘、二分类 赛题链接&#x1f447;&#xff1a; https://challenge.xfyun.cn/top…

[Machine Learning] decision tree 决策树

&#xff08;为了节约时间&#xff0c;后面关于机器学习和有关内容哦就是用中文进行书写了&#xff0c;如果有需要的话&#xff0c;我在目前手头项目交工以后&#xff0c;用英文重写一遍&#xff09; &#xff08;祝&#xff0c;本文同时用于比赛学习笔记和机器学习基础课程&a…

【学习FreeRTOS】第12章——FreeRTOS时间管理

1.FreeRTOS系统时钟节拍 FreeRTOS的系统时钟节拍计数器是全局变量xTickCount&#xff0c;一般来源于系统的SysTick。在STM32F1中&#xff0c;SysTick的时钟源是72MHz/89MHz&#xff0c;如下代码&#xff0c;RELOAD 9MHz/1000-1 8999&#xff0c;所以时钟节拍是1ms。 portNV…

事物有哪些特性 ?MySQL 如何保证事物的四大特性 ?

目录 1.事物有哪些特性 2. MySQL 如何保证事物的四大特性 3. 事物的隔离级别 1.事物有哪些特性 1.1 何为事物 &#xff1f; 事物就是把一件事情的多个步骤&#xff0c;多个操作&#xff0c;打包成一个步骤&#xff0c;一个操作。其中任意一个步骤执行失败&#xff0c;都会进…

隧道广播平面波扬声器的应用

隧道广播平面波扬声器是一款高清晰定向扬声器&#xff0c;采用稀土永磁磁性材料与声波相控阵技术&#xff0c;有效的解决了声音定向问题。是远距离定向声波发射装置是一种革命性的技术&#xff0c;它具有大功、率高清晰、远距离传声特点&#xff0c;可以将声音信息清晰地传输到…

【数据结构】 链表简介与单链表的实现

文章目录 ArrayList的缺陷链表链表的概念及结构链表的分类单向或者双向带头或者不带头循环或者非循环 单链表的实现创建单链表遍历链表得到单链表的长度查找是否包含关键字头插法尾插法任意位置插入删除第一次出现关键字为key的节点删除所有值为key的节点回收链表 总结 ArrayLi…

Aurora 8B/10B

目录 1. Overview2. Feature List2. Block Diagram3. Ports Description3.1. User InterfaceFraming InterfaceStreaming InterfaceUser Flow Control&#xff08;UFC&#xff09;Native Flow Control&#xff08;NFC&#xff09; 3.2. Status and Control Ports3.3. Transceiv…

基于python+django+mysql的校园影院售票系统(可做计算机毕设)

开发柚子校园影院&#xff0c;不仅可以改善用户查看信息难的局面&#xff0c;还可以提高管理效率&#xff0c;同时也可以增强系统的竞争力。利用柚子校园影院的可以有效地提高系统的人事的效率和信息化水平&#xff0c;快速了解信息更新及服务的进度。这既可以确保系统服务的品…

RuoYi 云服务器部署系统

一.为什么要部署 关于RuoYi-Vue是一个前后端分离的Web后台管理系统。部署在云服务器上让所有人都可以访问这是Web网站很正常的一个需求,只要我们将前端静态文件暴露在公网中,自然就部署好了。当然,要求是前端的静态资源可以访问到后端的接口,网站才会正常运行。 二.云服务器…

.netcore windows app启动webserver

创建controller: using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.Json.Serialization; using System.Threading.Tasks;namespace MyWorker.…

【AI】《动手学-深度学习-PyTorch版》笔记(十九):卷积神经网络模型(GoogLeNet、ResNet、DenseNet)

AI学习目录汇总 1、GoogLeNet 1.1 介绍 发布时间:2014年 GoogLeNet的贡献是如何选择合适大小的卷积核,并将不同大小的卷积核组合使用。 之前介绍的网络结构都是串行的,GoogLeNet使用并行的网络块,称为“Inception块” “Inception块”前后进化了四次,论文链接: [1]ht…

x.view(a,b)及x = x.view(x.size(0), -1) 的理解说明

x.view()就是对tensor进行reshape&#xff1a; 我们在创建一个网络的时候&#xff0c;会在Foward函数内看到view的使用。 首先这里是一个简单的网络&#xff0c;有卷积和全连接组成。它的foward函数如下&#xff1a; class NET(nn.Module):def __init__(self,batch_size):sup…