10种常用的JS数组循环及其应用场景

文章的更新路线:JavaScript基础知识-Vue2基础知识-Vue3基础知识-TypeScript基础知识-网络基础知识-浏览器基础知识-项目优化知识-项目实战经验-前端温习题(HTML基础知识和CSS基础知识已经更新完毕)

正文

在JavaScript中,数组是一种常见的数据结构,用于存储和操作多个值。为了遍历数组中的元素,我们可以使用不同的循环方式。本文将详细介绍JavaScript中常用的数组循环方式,包括forforEachfor...infor...ofwhile,并探讨它们的适用场景。

1. for循环

for循环是最基本和最常用的循环方式之一。它允许我们通过指定起始条件、终止条件和每次迭代后的操作来遍历数组。


const arr = [12345];

for (let i = 0; i < arr.length; i++) {
  console.log(arr[i]);
}

适用场景: 当需要根据索引对数组进行迭代时,使用for循环是最合适的选择。

2. forEach方法

forEach是数组的一个内置方法,它提供了一种简洁的方式来遍历数组的每个元素,并对每个元素执行回调函数。


const arr = [12345];

arr.forEach((element) => {
  console.log(element);
});

适用场景: 当只需要遍历数组的每个元素,并对每个元素执行相同的操作时,使用forEach方法是非常方便的。

3. for...in循环

for...in循环用于遍历对象的属性,但也可以用于遍历数组。它会迭代数组的索引或键,for-in最好只用于 object/map/hash 的遍历, 对 Array 用 for-in 循环有时会出错,因为它井不是从0到length- 1 进行遍历,而是所有出现在对象及其原型链的键值。


const arr = [12345];

for (let index in arr) {
  console.log(arr[index]);
}

适用场景: 当需要获取数组的索引或键时,使用for...in循环是一个不错的选择。然而,需要注意的是,for...in循环不保证按照数组的顺序进行迭代。

4. for...of循环

for...of循环是ES6引入的一种新的循环方式,它允许我们以更简洁的方式遍历可迭代对象(包括数组)的元素。


const arr = [12345];

for (let element of arr) {
  console.log(element);
}

适用场景: 当只需要遍历数组的每个元素,并且不需要索引或键时,使用for...of循环是最佳选择。

5. while循环

while循环是一种基本的循环结构,它会在给定条件为真时重复执行代码块。


const arr = [12345];
let i = 0;

while (i < arr.length) {
  console.log(arr[i]);
  i++;
}

适用场景: 当需要在满足特定条件时重复执行代码块时,使用while循环是一个不错的选择。

当然,除了前面提到的forforEachfor...infor...ofwhile之外,JavaScript还有其他一些数据循环方法。下面我将介绍其中两种常用的方法:mapfilter

6. map方法

map方法是数组的一个内置方法,它会创建一个新数组,其中的每个元素都是原始数组经过某种操作后的结果。


const arr = [12345];

const newArr = arr.map((element) => {
  return element * 2;
});

console.log(newArr); // 输出 [2, 4, 6, 8, 10]

map方法接受一个回调函数作为参数,该回调函数会对原始数组中的每个元素进行操作,并返回一个新的值。最终,map方法会返回一个新数组,其中包含了所有经过操作后的值。

适用场景: 当需要对数组中的每个元素进行某种操作,并得到一个新的数组时,使用map方法是非常方便的。

7. filter方法

filter方法也是数组的一个内置方法,它会创建一个新数组,其中只包含满足特定条件的元素。


const arr = [12345];

const filteredArr = arr.filter((element) => {
  return element % 2 === 0;
});

console.log(filteredArr); // 输出 [2, 4]

filter方法接受一个回调函数作为参数,该回调函数会对原始数组中的每个元素进行判断,并返回一个布尔值。最终,filter方法会返回一个新数组,其中只包含满足条件的元素。

适用场景: 当需要根据特定条件筛选出数组中的元素时,使用filter方法是非常方便的。

8. reduce方法

reduce方法是数组的一个内置方法,它通过迭代数组的每个元素,并将其累积到一个最终的值中。


const arr = [12345];

const sum = arr.reduce((accumulator, currentValue) => {
  return accumulator + currentValue;
}, 0);

console.log(sum); // 输出 15

reduce方法接受两个参数:回调函数和初始值。回调函数会接收两个参数:累积值(accumulator)和当前值(currentValue)。在每次迭代中,回调函数会根据当前值更新累积值,并将其传递给下一次迭代。最终,reduce方法会返回累积值作为结果。

适用场景: 当需要对数组中的元素进行累积计算时,使用reduce方法非常有用。例如,可以使用reduce方法来计算数组中所有元素的总和、平均值等。

9. some方法

some方法是数组的一个内置方法,它用于检测数组中是否至少有一个元素满足特定条件。


const arr = [12345];

const hasEvenNumber = arr.some((element) => {
  return element % 2 === 0;
});

console.log(hasEvenNumber); // 输出 true

some方法接受一个回调函数作为参数,该回调函数会对数组中的每个元素进行判断,并返回一个布尔值。如果数组中至少有一个元素满足条件,则some方法返回true;否则,返回false

适用场景: 当需要判断数组中是否存在满足特定条件的元素时,使用some方法非常方便。例如,可以使用some方法来检查数组中是否存在偶数、是否存在大于某个阈值的数字等。

10. every方法

every方法是数组的一个内置方法,它用于检测数组中的所有元素是否都满足特定条件。


const arr = [12345];

const allEvenNumbers = arr.every((element) => {
  return element % 2 === 0;
});

console.log(allEvenNumbers); // 输出 false

every方法接受一个回调函数作为参数,该回调函数会对数组中的每个元素进行判断,并返回一个布尔值。如果数组中的所有元素都满足条件,则every方法返回true;否则,返回false

适用场景: 当需要判断数组中的所有元素是否都满足特定条件时,使用every方法非常方便。例如,可以使用every方法来检查数组中是否所有元素都是偶数、是否所有元素都小于某个阈值等。

以上就是几种常用的数据循环方法。如果你还有其他问题或需要了解更多内容,请随时提问。

总结

本文介绍了JavaScript中常用的数组循环方式,包括forforEachfor...infor...ofwhilemapfilterreducesomeevery。每种循环方式都有其适用的场景。根据具体需求,我们可以选择最合适的循环方式来遍历数组并执行相应的操作。

结束语

分享1:Python爬取股票数据(回复 股票),运行不成功或不会执行的可以留言。

alt
alt

分享2:有需要的自行获取(回复 11)。

alt

分享3:AI资料大全,仅分享,不做购买推荐,有需要的自行获取(回复 AI)。

alt

分享4:基于Springboot+Vue的开源小项目 适合新手入门练习(回复 医疗)

alt

分享5:前端技术知识思维导图(回复 12)

alt

本文由 mdnice 多平台发布

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何在PostgreSQL中实现基于哈希的分区表以及其优势是什么

文章目录 一、基于哈希的分区表实现二、基于哈希的分区表优势 PostgreSQL是一个功能强大的开源关系型数据库管理系统&#xff0c;它支持多种分区策略&#xff0c;包括基于范围的分区、基于列表的分区以及基于哈希的分区。本文将重点讨论如何在PostgreSQL中实现基于哈希的分区表…

青否数字人直播带货源码有哪些功能?

青否数字人直播源码功能如下&#xff1a; 1、青否数字人克隆源码的克隆效果媲美真人 将真人录制的2-6分钟视频上传至克隆端后台&#xff0c;系统便会自动启动自动克隆。3-5小时后&#xff0c;即可生成一个与本人在形象、表情及动作上1&#xff1a;1的数字人。 2、在声音克隆上&…

Vue 3中的ref和toRefs:响应式状态管理利器

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

[MySQL]运算符

1. 算术运算符 (1). 算术运算符 : , -, *, / 或 DIV, % 或MOD. (2). 例 : (3). 注 : DUAL是伪表.可以看到4/2结果为小数&#xff0c;并不会截断小数部分.(可能与其他语言不同&#xff0c;比如java中&#xff0c;两个操作数如果是整数&#xff0c;则计算得到的也是整数&…

面试经典150题——二叉树展开为链表

​ 1. 题目描述 2. 题目分析与解析 2.1 思路一 因为题目中提到&#xff1a;展开后的单链表应该与二叉树 先序遍历 顺序相同&#xff0c;那么我们是不是就可以先先序遍历&#xff0c;然后按照先序遍历的节点一个一个赋值&#xff1f; 其实最简单的思路就是用一个结构按顺序存…

加速大数据分析:Apache Kylin使用心得与最佳实践详解

Apache Kylin 是一个开源的分布式分析引擎&#xff0c;提供了Hadoop之上的SQL接口和多维分析&#xff08;OLAP&#xff09;能力以支持大规模数据。它擅长处理互联网级别的超大规模数据集&#xff0c;并能够进行亚秒级的查询响应时间。Kylin 的主要使用场景包括大数据分析、交互…

Web前端安全问题分类综合以及XSS、CSRF、SQL注入、DoS/DDoS攻击、会话劫持、点击劫持等详解,增强生产安全意识

前端安全问题是指发生在浏览器、单页面应用、Web页面等前端环境中的各类安全隐患。Web前端作为与用户直接交互的界面&#xff0c;其安全性问题直接关系到用户体验和数据安全。近年来&#xff0c;随着前端技术的快速发展&#xff0c;Web前端安全问题也日益凸显。因此&#xff0c…

Altair:Python数据可视化库的魅力之旅

目录 一、引言 二、Altair概述 三、Altair的核心特性 1.声明式语法 2.丰富的图表类型 3.交互式与响应式 4.无缝集成 四、案例与代码实践 案例一&#xff1a;使用Altair绘制折线图 案例二&#xff1a;使用Altair绘制热力图 五、新手入门指南 1.安装与导入 2.数据准…

Nacos服务注册中心

1.引入依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>2.application.properties中配置 # 应用名称 spring.application.namenacos-aserver…

美国洛杉矶服务器的特点

美国洛杉矶的服务器提供多种优质的托管服务&#xff0c;具有较好的网络连接速度和稳定性。以下是一些洛杉矶服务器的特点和服务&#xff0c;rak小编为您整理发布。 1. **地理位置优势**&#xff1a;位于美国西海岸的洛杉矶机房离中国相对较近&#xff0c;这有助于减少延迟&…

指针专题(4)【qsort函数的概念和使用】

1.前言 上节我们学习了指针的相关内容&#xff0c;本节我们在有指针的基础的条件下学习一下指针的运用&#xff0c;那么废话不多说&#xff0c;我们正式进入今天的学习 2.回调函数 我们既然已经学习了指针的相关基础&#xff0c;那么我们此时就可以用指针来实现回调函数 而回…

如何在在wordpress安装百度统计

前言 看过我的往期文章的都知道&#xff0c;我又建了一个网站&#xff0c;这次是来真的了。于是&#xff0c;最近在查阅资料时发现&#xff0c;有一款免费的软件可以帮我吗分析网站数据。&#xff08;虽然我的破烂网站压根没人访问&#xff0c;但是能装上的都得上&#xff0c;…

python爬虫 - 爬取html中的script数据(爬取 zum.com新闻)

文章目录 1. 分析页面内容数据格式2. 使用re.findall方法&#xff0c;编写爬虫代码3. 使用re.search 方法&#xff0c;编写爬虫代码 1. 分析页面内容数据格式 &#xff08;1&#xff09;打开 https://zum.com/ &#xff08;2&#xff09;按F12&#xff08;或 在网页上右键 --…

免 Administrator 权限安装软件

以欧路词典为例, 从官网下载的安装包 https://www.eudic.net/v4/en/app/download 直接运行会弹出 UAC 提示需要管理员权限. 一个词典而已, 为啥要管理员权限呢? 答案是安装程序默认使用的安装路径是 C:\Program Files\ 这就不难理解了. 对于这种不需要其他额外权限的软件, 可以…

以赛促学、生态共建 | 软通动力子公司鸿湖万联成功举办基于x86架构的OpenHarmony应用生态挑战赛

近日&#xff0c;由开放原子开源基金会、央视网、江苏省工业和信息化厅、无锡市人民政府、江苏软件产业人才发展基金会、苏州工业园区、无锡高新区等共同承办&#xff0c;鸿湖万联参与共建的“基于x86架构的OpenHarmony应用生态挑战赛”决赛路演在无锡圆满落幕。本次挑战赛历时…

【THM】Linux Privilege Escalation(权限提升)-初级渗透测试

介绍 权限升级是一个旅程。没有灵丹妙药,很大程度上取决于目标系统的具体配置。内核版本、安装的应用程序、支持的编程语言、其他用户的密码是影响您通往 root shell 之路的几个关键要素。 该房间旨在涵盖主要的权限升级向量,并让您更好地了解该过程。无论您是参加 CTF、参加…

【C++学习】STL之空间配置器之一级空间配置器

文章目录 &#x1f4ca;什么是空间配置器✈STL 提供六大组件的了解&#x1f440;为什么需要空间配置器&#x1f44d;SGI-STL空间配置器实现原理&#x1f302;一级空间配置器的实现 &#x1f4ca;什么是空间配置器 空间配置器&#xff0c;顾名思义就是为各个容器高效的管理空间…

录制课程用什么软件好?这2款软件让你脱颖而出

在当今这个信息化快速发展的时代&#xff0c;录制课程已经成为了一种常见的教学手段。无论是高校教师、培训师还是网络教育工作者&#xff0c;都需要借助一些软件来录制高质量的课程。那么&#xff0c;录制课程用什么软件好呢&#xff1f;接下来&#xff0c;本文将介绍两种常见…

DxO Nik Collection 6.10.0 8套滤镜胶片插件套件mac/win

DxO Nik Collection 6是一款专为摄影师和图像创作者打造的强大后期处理工具。无论是专业摄影师还是业余爱好者&#xff0c;它都能为您的照片带来前所未有的提升。 这款软件集合了众多经典的Nik滤镜插件&#xff0c;如Color Efex Pro、Silver Efex Pro等&#xff0c;以及新增的P…

微信抽奖活动怎么做_微信抽奖大狂欢

随着科技的飞速发展&#xff0c;微信已经成为我们生活中不可或缺的一部分。它不仅仅是一个简单的通讯工具&#xff0c;更是一个集社交、购物、娱乐等多种功能于一体的平台。今天&#xff0c;我们为大家带来了一场别开生面的微信抽奖活动&#xff0c;让你在享受乐趣的同时&#…