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

2023-09-01 14:44:10

🎬 岸边的个人主页

 🔥 个人专栏 :《 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()方法用于获取对象的可枚举属性键名。掌握这些遍历方法能够提高开发效率,轻松应对不同数据结构的遍历操作。

​ 

更多推荐

Git 基本操作【本地仓库与远程仓库的推送、克隆和拉取】

文章目录一、Git简介二、Git的下载安装三、Git常规命令四、新建本地仓库五、本地分支操作六、Git远程仓库七、远程仓库克隆、抓取和拉取八、总结九、学习交流一、Git简介Git是分布式版本控制系统(DistributedVersionControlSystem,简称DVCS),分为两种类型的仓库:本地仓库和远程仓库工

51单片机1【单片机到底是什么】

1.从电路到集成电路1.电路发展变化的趋势(1)功率:电子设备·越来越省电,待机时间越来越长,工作电压越来越低。(2)体积:体积越来越小(3)功能:功能越来越强大2.微器件(1)电路的核心:开关控制,倍率控制(2)电子管,晶体管3.集成电路(IC,芯片)的出现(1)IC(integratedcircuit,集成电路),

[创业之路-76] - 创业公司如何在长期坚持中顺势而为?诚迈科技参观交流有感

目录一、创业环境1.1.VUCA乌卡时代:易变、复杂、不确定性、模糊的时代1.2.中国用了四十年的时间完成了三次工业革命:机械化、电气化、数字化1.3.中国正在经历着第四次工业革命:智能化、生态化、拟人化1.4国产替代:国产化1.5所有的赛道都挤满了人二、创业公司在长期坚持中顺势而为的路径2.1做自己的熟悉行业:对行业

annyang语音识别与语音合成库

*text是Annyang.js中的一个通配符,表示匹配任何语音输入中的文本,并将其作为参数传递给命令回调函数。例如,如果用户说“searchforcats”,则可以使用以下命令来捕获输入中的搜索词:constcommands={'searchfor*text':(text)=>{console.log('Search

Selenium和Requests搭配使用

Selenium和Requests搭配使用前要1.CDP2.通过requests控制浏览器2.1代码一2.2代码23.通过selenium获取cookie,requests携带cookie请求前要之前有提过,用selenium控制本地浏览器,提高拟人化,但是效率比较低,今天说一种selenium和requests搭配使

人类的生成式与机器的生成式

生成式是指一种基于模型的方法,通过给定的条件或输入,生成与之相符合的输出。在自然语言处理领域中,生成式模型通常用于生成文本、文章、对话等自然语言序列。生成式模型的训练主要涉及两个步骤:学习和生成。在学习阶段,模型通过对大量的训练数据进行学习和训练,以学习出模式、语法和语义等语言特征。在生成阶段,模型接受一个初始输入,并

【Redis】Redis的特性和应用场景 · 数据类型 · 持久化 · 数据淘汰 · 事务 · 多机部署

【Redis】Redis常见面试题(3)文章目录【Redis】Redis常见面试题(3)1.特性&应用场景1.1Redis能实现什么功能1.2Redis支持分布式的原理1.3为什么Redis这么快1.4Redis实现分布式锁1.5Redis作为缓存2.数据类型2.1Redis常用的数据类型有哪些2.2有序列表的底层是如

java 入门-使用eclipse、javaFX、SceneBuilder进行图形界面开发

个人是一直在开C#CS端开发,目前公司的软件基本都使用了java作开发。为了更好适应环境,我也只能再次学习这个陌生的开发工具。java的开发界面非常不友好,对于我这样的初学者只能是借助插件来进行界面与后台联动,上网度娘了好多资料,java的开发环境非常不易构建特别是需要辅助界面设计的。谨以我这么多天的摸索经历来作下小记

高通recovery流程分析(编译、界面、图片)

目录recovery界面菜单recovery界面操作recovery启动流程recovery编译makefilerecovery图片大小ramdisk、boot.img、recovery.img之间的关系authordaisy.skye的博客_CSDN博客-嵌入式,Qt,Linux领域博主recovery界面菜单rec

【QT开发笔记-基础篇】| 第四章 事件QEvent | 4.2 完成整体布局

本章要实现的整体效果如下:在讲解实际的事件之前,本节先把整体布局搭建好。布局整体包括左侧的导航和右侧的主窗体1.新建工程新建一个窗口类MainWidget,继承自QWidget,并且取消“Generateform”复选框也就是不使用UI设计师界面拖拽控件,而是纯代码来实现界面。最终新建工程如下:此时,直接运行是一个空白

超越创意,从用户创造内容到AI生成内容的新时代

在这个信息爆炸的时代,内容创作正经历前所未有的变革,其频率和多样性令人瞠目结舌。曾经,我们主要依赖传统媒体,需要专业团队为人们打造内容,这被称为专业生成内容(PGC,Professional-generatedContent)。但随着互联网的广泛渗透,用户生成内容(UGC,User-generatedContent)逐

热文推荐