【JavaScript精通之道】掌握数据遍历:解锁现代化遍历方法,提升开发效率!

news2024/11/15 10:59:07

🎬 岸边的:个人主页

 🔥 个人专栏 :《 VUE 》 《 javaScript 》

⛺️ 生活的理想,就是为了理想的生活 !

在这里插入图片描述

目录

 📚 前言

 📘 1. reduce方法

📘 2. forEach方法

📘 3. map方法

 📘 4. for循环

📘 5. filter方法

📘 6. for...of循环

📘 7. Object.keys方法

📘 8. Object.values方法

📘 9. Object.entries方法

📚  写在最后


 
📚 前言

​ 

JavaScript开发中,经常需要对数组、对象等数据结构进行遍历操作。为了提高开发效率,JavaScript提供了多种灵活的遍历方法。本文将介绍JavaScript中常用的数据结构遍历方法,助你更好地操作数据。

遍历方法包括传统的for循环、forEach()方法、for...of循环和for...in循环。每种方法都有其独特的应用场景和特点,可以根据具体需求选择最合适的方式。

掌握这些遍历方法,你将能够轻松遍历数组、对象等数据结构,并灵活处理数据。无论是简单还是复杂的数据,你都能够快速、高效地进行遍历操作。让我们一起来学习JavaScript中的数据结构遍历技巧吧!

 📘 1. reduce方法

reduce方法也是ES5新增的遍历方法,它可以遍历数组的每一个元素,对每一个元素执行回调函数,并返回一个累加值。

const arr = [1, 2, 3, 4, 5];
const sum = arr.reduce((prev, cur) => {
  return prev + cur;
}, 0);
console.log(sum); // 15

📘 2. forEach方法

forEach方法是ES5新增的遍历方法,它可以遍历数组的每一个元素,对每一个元素执行回调函数。

const arr = [1, 2, 3, 4, 5];
arr.forEach((item) => {
  console.log(item);
});

📘 3. map方法

map方法也是ES5新增的遍历方法,它可以遍历数组的每一个元素,对每一个元素执行回调函数,并将回调函数的返回值组成一个新的数组返回。

const arr = [1, 2, 3, 4, 5];
const newArr = arr.map((item) => {
  return item * 2;
});
console.log(newArr); // [2, 4, 6, 8, 10]

 📘 4. for循环

for循环是最基本、最常用的遍历方法。for循环通过设置计数器,来遍历数组或对象的每一个元素。

const arr = [1, 2, 3, 4, 5];
for(let i = 0; i < arr.length; i++) {
  console.log(arr[i]);
}

const obj = {a: 1, b: 2, c: 3};
for(let key in obj) {
  console.log(key, obj[key]);
}

📘 5. filter方法

filter方法也是ES5新增的遍历方法,它可以遍历数组的每一个元素,对每一个元素执行回调函数,并返回一个新的数组,该数组包含符合回调函数条件的元素。

const arr = [1, 2, 3, 4, 5];
const newArr = arr.filter((item) => {
  return item % 2 === 0;
});
console.log(newArr); // [2, 4]

📘 6. for...of循环

for...of循环是ES6新增的遍历方法,它可以遍历数组、Set、Map等数据结构的每一个元素。

const arr = [1, 2, 3, 4, 5];
for(let item of arr) {
  console.log(item);
}

const set = new Set([1, 2, 3, 4, 5]);
for(let item of set) {
  console.log(item);
}

const map = new Map([[1, 'one'], [2, 'two'], [3, 'three']]);
for(let [key, value] of map) {
  console.log(key, value);
}

📘 7. Object.keys方法

Object.keys方法可以获取对象的所有属性名,并返回一个数组。可以通过遍历该数组来遍历对象的属性。

const obj = {a: 1, b: 2, c: 3};
const keys = Object.keys(obj);
for(let key of keys) {
  console.log(key, obj[key]);
}

📘 8. Object.values方法

Object.values方法可以获取对象的所有属性值,并返回一个数组。可以通过遍历该数组来遍历对象的属性值。

const obj = {a: 1, b: 2, c: 3};
const values = Object.values(obj);
for(let value of values) {
  console.log(value);
}

📘 9. Object.entries方法

Object.entries方法可以获取对象的所有属性名和属性值,并返回一个二维数组。可以通过遍历该二维数组来遍历对象的属性名和属性值。

const obj = {a: 1, b: 2, c: 3};
const entries = Object.entries(obj);
for(let [key, value] of entries) {
  console.log(key, value);
}

📚  写在最后

JavaScript提供了多种灵活的遍历方法,用于操作数组、对象等数据结构。常见的方法包括传统的循环(如for、while)、forEach()方法、for...of循环和for...in循环。这些方法各有特点,可以根据需求选择使用。传统循环可精确控制迭代次数和逻辑forEach()方法简洁易读,for...of循环适用于可迭代对象,for...in循环用于遍历对象的可枚举属性。此外,还有Object.keys()方法用于获取对象的可枚举属性键名。掌握这些遍历方法能够提高开发效率,轻松应对不同数据结构的遍历操作。

​ 

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

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

相关文章

兔鲜儿 - 用户模块

目录 兔鲜儿 - 用户模块​ 会员中心页(我的)​ 静态结构​ 猜你喜欢分页加载 会员设置页 设置页分包和预下载 静态结构 退出登录 会员信息页 个人信息页准备工作 静态结构 获取会员信息​ 渲染会员信息 更新会员头像 更新表单信息​ 兔鲜儿 - 用户模块​ 在用户…

Elasticsearch:wildcard - 通配符搜索

Elasticsearch 是一个分布式、免费和开放的搜索和分析引擎&#xff0c;适用于所有类型的数据&#xff0c;例如文本、数字、地理空间、结构化和非结构化数据。 它基于 Apache Lucene 构建&#xff0c;Apache Lucene 是一个全文搜索引擎&#xff0c;可用于各种编程语言。 由于其速…

IPV4地址说明

设想一个场景&#xff1a; 你有两台电脑A和B&#xff0c;需要把A的数据传输到B&#xff0c;怎么办&#xff1f; 1 我们可以用U盘进行拷贝&#xff0c;就是把A的数据拷贝到B 2 我们可以用一根网线把AB连接起来 显然&#xff0c;两台电脑用一根网线。那要是n台电脑呢&#xff1f;…

容灾的重头戏——业务接管和容灾回切,你了解多少?

在备份容灾过程中&#xff0c;业务接管和数据回切是不可忽视的两大环节。 容灾接管&#xff1a;备份容灾过程中的一个环节&#xff0c;当生产系统发生故障时&#xff0c;业务被容灾系统所代替的过程。 数据回切&#xff1a;备份容灾过程中的最后一个环节&#xff0c;生产系统…

如何修复xinput1_4.dll丢失的问题?教你怎么快速修复xinput1_4.dll文件

在使用计算机的过程中&#xff0c;我们可能会遇到各种各样的错误和问题。其中之一就是xinput1_4.dll丢失的错误。这个错误会导致一些游戏或应用程序无法正常运行&#xff0c;给我们带来不便&#xff0c;但是不要担心&#xff0c;其实很简单&#xff0c;我们只要了解清楚xinput1…

全面掌握胶囊网络:从基础理论到PyTorch实战

本文全面深入地探讨了胶囊网络&#xff08;Capsule Networks&#xff09;的原理、构建块、数学模型以及在PyTorch中的实现。通过本文&#xff0c;读者不仅能够理解胶囊网络的基础概念和高级数学原理&#xff0c;还能掌握其在实际问题中的应用方法。 关注TechLead&#xff0c;分…

Nginx详解 第四部分:Nginx重写功能(附详细配置实例)

Part 4 1.简介2.if指令&#xff08;单分支&#xff09;2.1 基本原理2.2 基本语法2.3 举个例子 3.return指令3.1 定义和作用3.2 基本语法3.3 举个例子 4.set指令5.break指令5.1 基本原理5.2 举个例子 6.rewrite指令6.1 基本原理6.2 基本语法6.3 举个例子6.3.1 重写URL路径:目录重…

​2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书

​2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书

Friend.tech 火不过半个月,Web3 社交还有戏吗?

Friend.tech 是近期最被热议的去中心化社交应用&#xff0c;在仅限邀请加入的情况下&#xff0c;上线两天就狂揽 50 万美金&#xff0c;在 8 月 11 日当天就创下了单日突破 4000 ETH 交易量的记录&#xff0c;以及 26 万笔链上交易&#xff0c;引发一阵热潮。巅峰时期&#xff…

YGG 的声誉和进步 (RAP):玩家晋升的下一个层级

自从公会发展计划 (GAP) 开始跟踪玩家在公会中的参与情况和技能发展以来&#xff0c;人们就认识到需要有一个系统来保存这些活动的记录&#xff0c;这是协调 web3 生态系统中有意义活动的重要组成部分。 随着 YGG 的不断发展&#xff0c;跟踪成员贡献和活动的声誉系统将有助于…

ssm星空游戏购买下载平台源码和论文PPT

ssm星空游戏购买下载平台的设计与实现112 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 摘 要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优…

【Linux】线程安全-死锁

文章目录 死锁问题场景1场景2死锁的gdb调试造成死锁的必要条件不可剥夺循环等待互斥条件请求和保持 预防死锁破坏必要条件&#xff0c;循环等待&请求和保持加锁顺序一致避免锁没有被释放资源一次性分配 死锁问题 死锁的两种场景&#xff1a; 场景1 线程加锁之后一直没有将锁…

Lvs+KeepAlived高可用高性能负载均衡

目录 1.环境介绍 2.配置keepalived 3.测试 1.测试负载均衡 2.测试RS高可用 3.测试LVS高可用 3.1测试lvs主服务宕机 3.2.测试lvs主服务器恢复 4.我在实验中遇到的错误 1.环境介绍 环境&#xff1a;centos7 RS1---RIP1:192.168.163.145 VIP 192.168.163.200 RS2---RIP2…

SAP维护货币换算比率 TCODE: OBBS

通过外币做账时&#xff0c;如果系统没有维护好货币换算比率的&#xff0c;系统会提示&#xff1a;维护 SAR/ CNY 的换算率(汇率类型 M)。 维护维护 货币换算率事务代码为&#xff1a; OBBS

【Linux】进程的优先级

我们都知道进程等待需要cpu处理的&#xff0c;那就需要一个数据结构来记录要被cpu处理的进程&#xff0c;那这些进程是按一个什么样的方式在这个结构中进行等待呢&#xff1f;下面就要谈到进程的优先级了&#xff1a; 目录 一、进程的优先级的概念 二、查看进程的优先级 2.1…

浏览器连不上 Flink WebUI 8081 端口

安装 flink-1.17.0 后&#xff0c;start-cluster.sh 启动&#xff0c;发现浏览器连不上 Flink WebUI 的8081端口。 问题排查&#xff1a; command R&#xff0c;输入cmd&#xff0c;检查宿主机能否ping通虚拟机&#xff0c;发现能ping通。 检查是否有flink以外的任务占用8081…

SpringBoot使用i18n国际化

使用的SpringBoot版本是2.3.5 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.5.RELEASE</version><relativePath/> </parent> 一、简单测试…

CentOs8安装jdk

这里使用yum的方式安装jdk 卸载 如果有jdk的话&#xff0c;先卸载&#xff0c;卸载操作&#xff1a;https://blog.csdn.net/a3562323/article/details/107468828 安装 查看可安装的jdk相关版本 yum list java*安装 我这里装的是jdk11 yum install -y java-11-openjdk.x8…

ArcGIS Maps SDK for JavaScript(一):概述与使用

文章目录 1 概述2 如何使用ArcGIS Maps SDK for JavaScript2.1 AMD 模块与 ES 模块2.2 AMD 模块和 ES 模块比较 3 几种安装方式3.1 通过 ArcGIS CDN 获取 AMD 模块3.2 通过 NPM 运行 ES 模块3.3 通过 CDN 获取 ES 模块3.4 本地构建 ES3.5 本地构建 AMD 3 VSCode下载与安装2.1 下…

澳洲留学: 学签将改革移民倾向不再是拒签理由!

目录 1. 澳洲留学: 学签将改革移民倾向不再是拒签理由! 2. GMAT考试: 新版GMAT考试8月29日正式开放报名! AP 学科考试报名时间轴公布 或许native speaker使用的英语没有想象中的那么难 如果有人不相信你&#xff0c;而你想让他们相信你&#xff0c;你需要表现出不可否认…