【只会for循环? 来看下, Nodejs中典型的5种循环方式】
Nodejs中的,除了经典的for循环 , 其实还有几种好用的循环方式, 并有典型的使用场景。下面来一起看下👇🏻
5种循环用法
- For Loop:这是最常见的循环方式,适用于你知道循环次数的情况。
for (let i = 0; i < 10; i++) {console.log(i);
}
最常见用法,优点是通用,基本上各个语言都有这个写法。缺点是有些场景使用不方便。
- While Loop:当你不知道循环次数,但知道循环结束的条件时,可以使用 while 循环。
let i = 0;
while (i < 10) {console.log(i);i++;
}
- For…of Loop:这是 ES6 引入的新特性,用于遍历数组或其他可迭代对象。
const array = [1, 2, 3, 4, 5];
for (const value of array) {console.log(value);
}
这种循环本质属于迭代遍历,可用于遍历可迭代对象(如数组、Map、Set、字符串等)。它直接提供了每个元素的值,而不是索引或键名。此外这种遍历,还可以自定义迭代 内容。
自定义迭代遍历-示例1:
const iterable = {[Symbol.iterator]() {let i = 1;return {next() {if (i <= 3) {return { value: i++, done: false };}return { value: undefined, done: true };},};},
};for (const value of iterable) {console.log(value);
}
// 1
// 2
// 3
或者换种写法 ,自定义迭代遍历-示例2
const iterable = {*[Symbol.iterator]() {yield 1;yield 2;yield 3;},
};for (const value of iterable) {console.log(value);
}
// 1
// 2
// 3
自定义迭代遍历-示例3: early exiting
const source = [1, 2, 3];const iterator = source[Symbol.iterator]();for (const value of iterator) {console.log(value);if (value === 1) {break;}console.log("This string will not be logged.");
}
// 1// Another loop using the same iterator
// picks up where the last loop left off.
for (const value of iterator) {console.log(value);
}
// 2
// 3// The iterator is used up.
// This loop will execute no iterations.
for (const value of iterator) {console.log(value);
}
// [No output]
可以看到迭代器遍历,中途中止退出迭代后,下次使用相同迭代器可以从上次中止的位置继续迭代遍历。
- Array.prototype.forEach:这是一个数组方法,用于遍历数组。
const array = [1, 2, 3, 4, 5];
array.forEach((value, index) => {console.log(value);
});
它提供了元素值和索引两个参数,但不能使用 break 或 continue,也不能通过 return 语句跳出循环。
- For…in Loop:这种循环用于遍历对象的键名。
const obj = { a: 1, b: 2, c: 3 };
for (const key in obj) {console.log(key, obj[key]);
}
对象友好,这种循环用于遍历对象的键名。它不仅可以遍历对象自身的属性,还会遍历其原型链上的属性(除非属性被标记为不可枚举)。
小结
最后小结一下,遍历数组可以用 for, while, for of, forEach,遍历对象可以用 for in,如果想自定义遍历逻辑还可以自定义迭代器。
相关文章:
【只会for循环? 来看下, Nodejs中典型的5种循环方式】
Nodejs中的,除了经典的for循环 , 其实还有几种好用的循环方式, 并有典型的使用场景。下面来一起看下👇🏻 5种循环用法 For Loop:这是最常见的循环方式,适用于你知道循环次数的情况。 for (let i 0; i &…...
Java基础(三)- 多线程、网络通信、单元测试、反射、注解、动态代理
多线程基础 线程:一个程序内部的一条执行流程,只有一条执行流程就是单线程 java.lang.Thread代表线程 主线程退出,子线程存在,进程不会退出 可以使用jconsole查看 创建线程 有多个方法可以创建线程 继承Thread类 优点&#x…...
WordPress建站公司模板免费下载
WordPress建站公司 适合提供WordPress建站服务的公司或个体(个人)工作室使用的WordPress建站公司主题模板。 演示 https://www.jianzhanpress.com/?p545 https://www.wpicu.com/jianzhan/ 下载 链接: https://pan.baidu.com/s/11trlwUJq_lW81R_acq4ilA 提取码: r19i...
金融信贷风控基础知识
一、所谓风控(What && Why) 所谓风控,可以拆解从2个方面看,即 风险和控制 风险(what) 风险 这里狭隘的特指互联网产品中存在的风险点,例如 账户风险 垃圾注册账号账号被泄露盗用 交易支付风险 刷单:为提升卖家店铺人气…...
Web Server项目实战4-服务器编程基本框架和2种高效的事件处理模式
服务器编程基本框架 虽然服务器程序种类繁多,但其基本框架都一样,不同之处在于逻辑处理 模块功能I/O处理单元处理客户连接,读写网络数据逻辑单元业务进程或线程网络存储单元数据库、文件或缓存请求队列各单元之间的通信方式 I/O 处理单元是…...
。。。。。
...
RPC原理技术
RPC原理技术 背景介绍起源组件实现工作原理 背景 本文内容大多基于网上其他参考文章及资料整理后所得,并非原创,目的是为了需要时方便查看。 介绍 RPC,Remote Procedure Call,远程过程调用,允许像调用本地方法一样调…...
开源大模型与闭源大模型:技术哲学的较量
目录 前言一、 开源大模型的优势1. 社区支持与合作1.1 全球协作网络1.2 快速迭代与创新1.3 共享最佳实践 2. 透明性与可信赖性2.1 审计与验证2.2 减少偏见与错误2.3 安全性提升 3. 低成本与易访问性3.1 降低研发成本3.2 易于定制化3.3 教育资源丰富 4. 促进标准化5. 推动技术进…...
buuctf的RSA(二)
1.RSA 知道 flag.enc 和 pub.key,典型的加密、解密 将pub,key 改为pub.txt 打开后发现公钥 在RSA公私钥分解 Exponent、Modulus,Rsa公私钥指数、系数(模数)分解--查错网 进行解密 得到e65537 n8693448229604811919066606200349480058890565…...
idm软件是做什么的 IDM是啥软件 idm软件怎么下载 idm软件怎么下载
一、IDM是啥软件 IDM 是由美国 Tonec 公司开发的 Windows 软件,该软件最初于 2005 年发布。IDM全称Internet Download Manager,是一款Windows平台老牌而功能强大的下载加速器,专注于互联网数据下载。这款软件是一款不错的轻量级下载工具&…...
基于springboot+vue的学生考勤管理系统
开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…...
Java——内部类
1.什么是内部类 在一个类的里面再定义一个类,新定义的这个类就是内部类 举例:在Outer类的里面定义一个Inter类 class Outer{class Inter{} } 在这里Outer叫外部类,Inter叫内部类 内部类的应用场景 定义一个汽车类: 属性…...
不用从头训练,通过知识融合创建强大的统一模型
在自然语言处理(NLP)领域,大型语言模型(LLMs)的开发和训练是一个复杂且成本高昂的过程。数据需求是一个主要问题,因为训练这些模型需要大量的标注数据来保证其准确性和泛化能力;计算资源也是一个…...
僵尸进程、孤儿进程、守护进程
【一】僵尸进程和孤儿进程 【1】引入 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。 子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它…...
【工程化】CJS 和 ESM
common js require 函数的原理伪代码: function require(path) {if (该模块有缓存) {return 该模块的缓存}function _run(exports, require, module, __filename, __dirname) {// 模块代码}// module.exports 即为模块导出的对象var module { exports: {} };_run…...
记录:mac pro 16-inch,2019安装ubuntu双系统
需要的装备:u盘,扩展坞、有线键鼠、ext4硬盘 目的:编译aosp 11 1、首先是参照如下文章,分配空间,制作启动盘(测试ubuntu20.04不行,ubuntu22.04正常) https://blog.csdn.net/LBSGKD…...
WordPress主题 7B2 PRO 5.4.2 免授权开心版源码
本资源提供给大家学习及参考研究借鉴美工之用,请勿用于商业和非法用途,无任何技术支持! WordPress主题 7B2 PRO 5.4.2 免授权开心版源码 B2 PRO 5.4.2 最新免授权版不再需要改hosts,和正版一样上传安装就可以激活。 直接在Word…...
GPT‑4o普通账户也可以免费用
网址 https://chatgpt.com/ 试了一下,免费的确实显示GPT‑4o的模型,问了一下可以联网,不知道能不能通过插件出图 有兴趣的可以试试...
复制即用!纯htmlcss写的炫酷input输入框
一般我们写css样式都要用样式库,但是嫌麻烦,如果能找到现成的内容复制上去就很香了,下文是笔者觉得好看的纯html&css写的样式,可以直接复制到Vue等内,十分方便。 input组件 1) 下面这个很推荐&#…...
前端 CSS 经典:弧形边框选项卡
1. 效果图 2. 开始 准备一个元素,将元素左上角,右上角设为圆角。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, i…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...
0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化
是不是受够了安装了oracle database之后sqlplus的简陋,无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话,配置.bahs_profile后也能解决上下翻页这些,但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可,…...
