JS几种主要的循环方法
一、for循环for循环是最基础的循环结构适用于已知循环次数的场景。for (let i 0; i array.length; i) { console.log(array[i]); }二、for...in循环for...in循环用于遍历对象的可枚举属性。注意fo…in循环一般用于对象的遍历但是这里有一个坑需要注意任何对象都继承了Object对象或者其它对象继承的类的属性是默认不可遍历的for...in循环遍历的时候会跳过但是这个属性是可以更改为可以遍历的那么就会造成遍历到不属于自身的属性。举例来说对象都继承了toString属性但是for...in循环不会遍历到这个属性。const obj {a: 1, b: 2, c: 3}; for (let key in obj) { console.log(key, obj[key]); }如果继承的属性是可遍历的那么就会被for...in循环遍历到。但如果只想遍历自身的属性使用for...in的时候应该结合使用hasOwnProperty方法在循环内部判断一下某个属性是否为对象自身的属性。否则就可以产生遍历失真的情况。var person { name: 老张 }; for (var key in person) { if (person.hasOwnProperty(key)) { console.log(key); } }// name三、for...of循环for...of循环用于遍历可迭代对象如数组、Map、Set、字符串等的值。const arr [1, 2, 3]; for (let value of arr) { console.log(value); }四、forEach循环forEach是数组提供的方法用于遍历数组的每个元素。它不返回执行结果即返回值总是undefined适合执行不依赖于返回值的操作。array.forEach(function(element) { console.log(element); }); 或者使用箭头函数 array.forEach(element console.log(element));五、while循环while循环在给定条件为真时重复执行代码块。它适用于在开始迭代之前不知道循环次数的情况。语法while (条件) { 语句; }// 或者while (条件) 语句;let i 0; while (i array.length) { console.log(array[i]); i; }六、do...while循环do...while循环至少执行一次代码块然后只要条件为真就继续执行。这与while循环的主要区别在于do...while循环会先执行一次代码块然后再检查条件。语法do 语句 while (条件);// 或者do { 语句 } while (条件);let i 0; do { console.log(array[i]); i; } while (i array.length);七、map()循环map方法将数组的所有成员依次传入参数函数然后把每一次的执行结果组成一个新数组返回。注意是返回一个新数组而不会改变原数组。var numbers [1, 2, 3]; numbers.map(function (n) { return n 1; }); // [2, 3, 4] numbers // [1, 2, 3]map方法接受一个函数作为参数。该函数调用时map方法向它传入三个参数当前成员、当前位置和数组本身。var arr [1, 2, 3] .map(function(elem, index, arr) { return elem * index; }); // [0, 2, 6]map()循环还可以接受第二个参数用来绑定回调函数内部的this变量将回调函数内部的this对象指向第二个参数间接操作这个参数一般是数组。var arr [a, b, c]; [1, 2].map(function (e) { return this[e]; }, arr) // [b, c]上面代码通过map方法的第二个参数将回调函数内部的this对象指向arr数组。间接操作了数组arr; forEach同样具有这个功能。八、filter()九、reduce()reduceRight()reduce方法和reduceRight方法依次处理数组的每个成员最终累计为一个值。它们的差别是reduce是从左到右处理从第一个成员到最后一个成员reduceRight则是从右到左从最后一个成员到第一个成员其他完全一样。const arr [1, 2, 3, 4, 5] arr.reduce(function (a, b) { console.log(a, b); return a b; })reduce方法和reduceRight方法的第一个参数都是一个函数。该函数接受以下四个参数。累积变量默认为数组的第一个成员当前变量默认为数组的第二个成员当前位置从0开始原数组这四个参数之中只有前两个是必须的后两个则是可选的。如果要对累积变量指定初值可以把它放在reduce方法和reduceRight方法的第二个参数。const arr [1, 2, 3, 4, 5] arr.reduce(function (a, b) { return a b; }, 10);

相关新闻

暗黑3技能连点器完整指南:5分钟掌握自动化战斗技巧

暗黑3技能连点器完整指南:5分钟掌握自动化战斗技巧

暗黑3技能连点器完整指南:5分钟掌握自动化战斗技巧 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 暗黑破坏神3是一款动作角色扮演游戏&a…

2026/8/6 12:26:58 阅读更多 →
AE脚本-More Lively Text 更生动的文字动画

AE脚本-More Lively Text 更生动的文字动画

ore Lively Text 是一款专为 After Effects 打造的轻量化、高效率文本动效快捷脚本,主打一键快速生成文字动画核心功能,完美解决了AE软件原生文字动效制作流程繁琐、参数调试复杂、多动画叠加操作困难的行业痛点,是视频剪辑、特效制作、自媒体…

2026/8/6 12:26:58 阅读更多 →
三星收缩中国市场:手机业务承压,高端化之路能否破局?

三星收缩中国市场:手机业务承压,高端化之路能否破局?

1、三星手机步家电后尘 近日,新浪科技报道三星手机收缩中国市场布局,月销不足30万门店将清退,深圳等地已有门店关门。三个月前即今年5月,三星宣布退出中国家电市场。市场数据显示,2025年三星家电中国份额仅1.5%&#x…

2026/8/6 12:26:58 阅读更多 →

最新新闻

掌握ppInk:解锁Windows屏幕标注的全新工作流程

掌握ppInk:解锁Windows屏幕标注的全新工作流程

掌握ppInk:解锁Windows屏幕标注的全新工作流程 【免费下载链接】ppInk Fork from Gink 项目地址: https://gitcode.com/gh_mirrors/pp/ppInk ppInk是一款源自Gink项目的Windows屏幕标注工具,专为教学演示、远程会议和日常办公设计。这款开源屏幕标…

2026/8/6 13:06:20 阅读更多 →
3分钟快速上手FanControl:Windows风扇控制的终极免费解决方案

3分钟快速上手FanControl:Windows风扇控制的终极免费解决方案

3分钟快速上手FanControl:Windows风扇控制的终极免费解决方案 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Tren…

2026/8/6 13:06:20 阅读更多 →
Adobe GenP 3.0破解工具:5步快速解锁Adobe全家桶高级功能

Adobe GenP 3.0破解工具:5步快速解锁Adobe全家桶高级功能

Adobe GenP 3.0破解工具:5步快速解锁Adobe全家桶高级功能 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 对于许多创意工作者和学生来说,Ado…

2026/8/6 13:06:20 阅读更多 →
市场信号失真与行为干预系统的设计实践

市场信号失真与行为干预系统的设计实践

1. 市场信号失真的现实困境市场信号传导机制就像城市交通系统中的红绿灯,本应清晰明确地引导资源流动方向。但现实中我们常遇到这样的场景:某新兴行业突然获得超额融资,三个月后却出现大面积倒闭潮;消费者被铺天盖地的营销信息包围…

2026/8/6 13:06:20 阅读更多 →
ZGC型旋转式固液分离机CAD装配图设计全解析

ZGC型旋转式固液分离机CAD装配图设计全解析

1. 项目概述:ZGC型旋转式固液分离机CAD装配图解析在环保设备制造领域,ZGC型旋转式固液分离机是一种常见的高效分离设备,广泛应用于污水处理、食品加工、化工生产等行业。作为机械设计工程师,完整准确的CAD装配图是设备制造的基础&…

2026/8/6 13:06:20 阅读更多 →
Visual C++ Redistributable AIO:Windows系统运行库的一站式解决方案

Visual C++ Redistributable AIO:Windows系统运行库的一站式解决方案

Visual C Redistributable AIO:Windows系统运行库的一站式解决方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是一个文章写手,你负…

2026/8/6 13:05:19 阅读更多 →

日新闻

深入解析LimboAI C++内核:架构设计与性能优化实战

深入解析LimboAI C++内核:架构设计与性能优化实战

1. 项目概述:为什么我们需要深入LimboAI的C内核?如果你是一名使用Godot引擎的游戏开发者,尤其是对AI行为逻辑有较高要求的项目,那么LimboAI这个名字你大概率不会陌生。它作为Godot 4生态中一个备受瞩目的行为树与状态机插件&#…

2026/8/6 0:00:06 阅读更多 →
Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

1. 项目概述与核心思路大家好,我是老张,一个在游戏开发一线摸爬滚打了十多年的老码农。今天咱们接着聊《空洞骑士》风格2D动作游戏的Demo制作。上一期我们搭好了基础框架,处理了角色移动和碰撞,这一期,我们要让游戏世界…

2026/8/6 0:00:06 阅读更多 →
被动防火门市场前景发展趋势

被动防火门市场前景发展趋势

被动防火门依靠材质结构、密闭构造阻隔烟火蔓延,无需电控启动,是建筑被动消防系统核心构件,行业依托新规管控、城市更新、工业安全升级迎来稳定扩容,整体朝着合规化、专项化、低碳化、智能化方向发展。现阶段 GB12955‑2024 新版国…

2026/8/6 0:00:06 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/5 15:00:43 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/5 13:13:56 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/5 10:20:36 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/5 21:00:14 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →