JavaScript遍历方式总结
目录
一、数组遍历方法
1.1for循环
1.2for...of循环
1.3forEach
1.4map方法
1.5filter方法
1.6reduce方法
1.7some方法
1.8every方法
二、对象遍历方法
2.1for...in方法
2.2values、keys方法
2.3entries方法
一、数组遍历方法
1.1for循环
最普通的循环:
data = [1,2,3,4,5]
for(let i = 0; i < data.length; i++){console.log(data[i]);
}
- 通过指定:“起始条件”、“终止条件”、“迭代步长”来循环
可以遍历用的对象为:“数组”、“字符串”、“类数组对象”
1.2for...of循环
直接遍历数组元素的值,避免索引访问
const data = [1,2,3,4,5]
for (const item of data){console.log(item);
}
可以遍历用的对象为:“数组”、“字符串”、“Set”、“Map”、“Generator函数生成器”
1.3forEach
data.forEach(item,index,list)
- item:当前元素
- index:当前元素索引
- list:整个遍历对象
对数组的每个元素进行一次函数操作,没有返回值,主要遍历并执行某些操作
const data = [1,2,3,4,5]
data.forEach((item) => {console.log(item)
})
可以遍历的对象为:“数组”
1.4map方法
创建一个新数组,新数组中的元素是旧数组中每个元素进行函数操作后的返回值
- 不会改变原数组,会创建一个新数组
const data = [1,2,3,4,5]
const arr = data.map((item) => {return item * 2
})
console.log(arr)
可以遍历的对象为:“数组”
1.5filter方法
创建一个新数组,新数组中的元素为旧数组中符合条件的元素。
- 不会改变原数组,会创建一个新数组
const data = [1,2,3,4,5]
const arr = data.filter((item) => {return item % 2 == 0
})
console.log(arr)
可以遍历的对象为:“数组”
1.6reduce方法
对数组中的每个元素进行累积计算(求和、乘积),将每个元素依次传入回调函数,并将上次计算结果作为下一次的参数
reduce((total,current,index,list),init)
- total:初始值,在每次迭代中存储上次计算的结果
- current:当前元素
- index:当前元素索引
- list:整个数组对象
- init:初始值,给定该值后数组将从第一个元素开始累积,total初始化为init。若不给定该值,total默认为元素第一个值,并且从第二个元素开始迭代。
可以遍历的对象为:“数组”
1.7some方法
判断数组中是否有某个元素满足条件,只要有一个满足就返回True,否则返回False
const data = [1,2,3,4,5]
const flag = data.some((item) => item > 6)
console.log(flag) //false
1.8every方法
判断数组中是否全部元素满足条件,只要有一个不满足就返回False,否则返回True
const data = [1,2,3,4,5]
const flag = data.every((item) => item > 0)
console.log(flag) //true
二、对象遍历方法
2.1for...in方法
遍历对象自身可枚举属性以及原型链继承的可枚举属性
- 遍历属性的顺序是不确定的,会因为不同环境或对象结构而有所不同
- 需要结合hasOwnproperty方法判断是否为对象自身属性
在这里有个坑,在打印时不能使用data.key只能用data[key]
因为data.key查找对象时,是根据属性名查找不是变量的值查找,因此会去查找data中名为“key”的属性
const data = {name:'John',age:30
}
for (const key in data){console.log(key,data[key]) //name John, age 30
}for (const key in data){console.log(key,data.key) //name undefined age undefined
}
可以遍历的对象为:“数组”(不推荐) 、“对象”
2.2values、keys方法
Object.keys(obj)返回obj对象的键组成的一个迭代器
Object.values(obj)返回obj对象的值组成的一个迭代器
const data = {name:'John',age:30
}
Object.keys(data).forEach(key => console.log(key)) // ['name', 'age']
Object.values(data).forEach(key => console.log(key)) // ['John', 30]
可以遍历的对象为:“数组” 、“对象”、“Map”、“Set”(只有values可以)
2.3entries方法
Object.entries(obj)返回对象的“键、值”对
const data = {name:'John',age:30
}
Object.entries(data).forEach(([key,value]) => console.log(key,value)) //name John age 30
可以遍历的对象为:“数组” 、“对象”、“Map”
相关文章:
JavaScript遍历方式总结
目录 一、数组遍历方法 1.1for循环 1.2for...of循环 1.3forEach 1.4map方法 1.5filter方法 1.6reduce方法 1.7some方法 1.8every方法 二、对象遍历方法 2.1for...in方法 2.2values、keys方法 2.3entries方法 一、数组遍历方法 1.1for循环 最普通的循环…...
Python毕业设计选题:基于Python的社区爱心养老管理系统设计与实现_django
开发语言:Python框架:djangoPython版本:python3.7.7数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 管理员登录 管理员功能界面 用户管理 身体健康界面 公共书籍界面 借阅信息界面 归还…...
Spring Boot整合WebSocket
目录 ?引言 1.WebSocket 基础知识 ?1.1 什么是 WebSocket? ?1.2 WebSocket 的应用场景 ?2.Spring Boot WebSocket 整合步骤 2.1 创建 Spring Boot 项目 2.2 添加 Maven 依赖 2.3 配置 WebSocket 2.4 创建 WebSocket 控制器 2.5 创建前端页面 引言 在…...
Pycharm使用matplotlib出现的问题(1、不能弹出图表 2、图表标题中文不显示)
Pycharm使用matplotlib出现的问题 问题1:Pycharm调试时出现:AttributeError: module backend_interagg has no attribute FigureCanvas. Did you mean: FigureCanvasAgg? 排查原因:可能是由于matplotlib后端设置不正确或与运行环境不兼容引…...
《宇树科技:解锁机器人技术的未来密码》:此文为AI自动生成
走进宇树科技 在科技飞速发展的今天,机器人领域正以前所未有的速度蓬勃发展,成为全球瞩目的焦点。在这个充满创新与挑战的领域中,宇树科技宛如一颗璀璨的明星,闪耀着独特的光芒。它不仅在国内机器人行业占据着重要地位,更是在国际舞台上崭露头角,成为了中国机器人技术的…...
Spark map与mapPartitions算子源码级深度解析
Spark map与mapPartitions算子源码级深度解析 一、核心源码结构差异 1. map算子实现逻辑 def map[U: ClassTag](f: T => U): RDD[U] = withScope {val cleanF = sc.clean(f)new MapPartitionsRDD[U, T](this, (context, pid, iter) => iter.map(cleanF)) }实现特征: …...
在 Vue 3 中,如何缓存和复用动态组件
在 Vue 3 中,如何缓存和复用动态组件,这有助于提高应用的性能,避免组件重复创建和销毁带来的开销。下面详细介绍其使用方法和相关配置。 1. 使用 <KeepAlive> 组件缓存动态组件 基本使用 <KeepAlive> 是 Vue 3 内置的一个组件…...
【PromptCoder】使用 package.json 生成 cursorrules
【PromptCoder】使用 package.json 生成 cursorrules 在当今快节奏的开发世界中,效率和准确性至关重要。开发者们不断寻找能够优化工作流程、帮助他们更快编写高质量代码的工具。Cursor 作为一款 AI 驱动的代码编辑器,正在彻底改变我们的编程方式。但如…...
给博客添加基于百度地图的足迹页面
使用百度地图 api 做的足迹页面一段时间了,经过一番改造,目前已基本能够满足自己需求。 一、添加百度地图 添加百度地图基本思路就是6点: 申请百度AK适当位置添加百度地图容器引入百度地图 api创建地图实例设置地图中心点初始化地图 这里…...
【构建工具】Gradle Kotlin DSL中的大小写陷阱:BuildConfigField
在Android开发当中,BuildConfig是一个非常有用的功能,它允许我们在构建过程中定义常量,并在运行时使用它们。But!!当我们从传统的Groovy DSL迁移到Kotlin DSL时或者被Android Studio坑的时候,有一些细微的差…...
南京来可电子CAN总线数据记录仪在汽车售后服务站的应用
南京来可电子CAN总线数据记录仪在汽车售后服务站的应用 南京来可电子(LaiCore)作为国内领先的车载数据采集设备供应商,其CAN总线数据记录仪凭借高精度、多协议兼容性及智能化功能,在汽车售后服务站中发挥重要作用。以下是其核心应…...
FreeSql + .Net6 多库连接实现
1、安装Nuget包 AutoMapper 2、program.cs里添加如下配置: services.AddSingleton(r >{var str configuration.GetConnectionString("MES");return new FreeSqlBuilder().UseConnectionString(DataType.SqlServer, str).Build<MESFlag>();});s…...
4个小时开发DeepSeek+baiduNaotu一键生成思维导图
一、引言 最近发现AI生成思维导图的解决方案普遍存在两个断层:用户需手动复制模型输出的JSON数据到脑图软件,且缺乏实时可视化反馈。基于日常使用的BaiduNaotu框架(其轻量级架构与简洁的UI设计已满足基础需求),我决定…...
(21)从strerror到strtok:解码C语言字符函数的“生存指南2”
❤个人主页:折枝寄北的博客 ❤专栏位置:简单入手C语言专栏 目录 前言1. 错误信息报告1.1 strerror 2. 字符操作2.1 字符分类函数2.2 字符转换函数 3. 内存操作函数3.1 memcpy3.2 memmove3.2memset3.3 memcmp 感谢您的阅读 前言 当你写下strcpy(dest, s…...
构建动态URL查询字符串以导出报警统计数据
如何构建动态URL查询字符串以导出报警统计数据 在开发Web应用程序时,经常需要根据用户的选择或输入来动态构建URL查询字符串,以便从服务器检索或导出数据。在本文中,我们将展示如何使用JavaScript来构建一个动态URL查询字符串,用…...
SpringBoot集成easy-captcha图片验证码框架
SpringBoot集成easy-captcha图片验证码框架 此项目已经很久未维护,如有更好的选择,建议使用更好的选择!!! 一、引言 验证码(CAPTCHA)是现代应用中防止机器人攻击、保护接口安全的核心手段之一。然而,从零开发验证码…...
Apache Flink:实时数据流处理的终极武器
Apache Flink:实时数据流处理的终极武器 在当今这个数据驱动的世界,实时数据流处理已经成为各行各业的核心需求。从金融风控到电商推荐,从物联网监控到网络安全,毫秒级的响应能力决定了一家公司在市场中的竞争力。而在众多流式计…...
货车一键启动无钥匙进入手机远程启动的正确使用方法
一、移动管家货车无钥匙进入系统的使用方法 基本原理:无钥匙进入系统通常采用RFID无线射频技术和车辆身份识别码识别系统。车钥匙需要随身携带,当车钥匙靠近货车时,它会自动与货车的解码器匹配。开门操作:当靠近货车后࿰…...
C# Enumerable类 之 生成序列
总目录 前言 在 C# 中,System.Linq.Enumerable 类是 LINQ(Language Integrated Query)的核心组成部分,它提供了一系列静态方法,用于操作实现了 IEnumerable 接口的集合。通过这些方法,我们可以轻松地对集合…...
【实战 ES】实战 Elasticsearch:快速上手与深度实践-1.2.2倒排索引原理与分词器(Analyzer)
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 1.2.2倒排索引原理与分词器(Analyzer)1. 倒排索引:搜索引擎的基石1.1 正排索引 vs 倒排索引示例数据对比: 1.2 倒排索引核心结…...
salesforce 为什么无法关闭task,显示:insufficient access rights on object id
在 Salesforce 中,如果你在尝试关闭任务(Task)时遇到 “Insufficient access rights on object id” 错误,通常是由于以下几种可能的权限问题导致的: 1. 任务的所有权问题 Salesforce 中的任务(Task&…...
和鲸科技携手四川气象,以 AI 的力量赋能四川气象一体化平台建设
气象领域与农业、能源、交通、环境科学等国计民生关键领域紧密相连,发挥着不可替代的重要作用。人工智能技术的迅猛发展,为气象领域突破困境带来了新的契机。AI 技术能够深度挖掘气象大数据中蕴含的复杂信息,助力人类更精准地把握自然规律&am…...
linux下java Files.copy 提示文件名过长
linux下java Files.copy 提示文件名过长问题排查 系统运行时执行文件拷贝的功能的时候出现了 文件名称过长的报错提示 查询过资料后整理出了每个操作系统支持最大的文件名称长度 每个操作系统现在的文件长度不一样 Linux的 /usr/include/linux/limits.h 中做出了说明 这些限制…...
工业AR眼镜的‘芯’动力:FPC让制造更智能【新立电子】
随着增强现实(AR)技术的快速发展,工业AR智能眼镜也正逐步成为制造业领域的重要工具。它不仅为现场工作人员提供了视觉辅助,还极大地提升了远程协助的效率、优化了仓储管理。新立电子其高性能的FPC产品在AI眼镜中的应用,…...
Metal学习笔记八:纹理
到目前为止,您已经学习了如何使用片段函数和着色器为模型添加颜色和细节。另一种选择是使用图像纹理,您将在本章中学习如何作。更具体地说,您将了解: • UV 坐标:如何展开网格,以便可以对其应用纹理。 • 纹…...
一文5分钟掌握基于JWT的模拟登录爬取实战
文章目录 一、JWT简介1.1 什么是JWT?1.2 JWT的结构1.3 模拟登录流程1.4 爬取数据1.5 实战步骤 二、实战示例:基于JWT的模拟登录爬取2.1 环境准备2.2 分析登录流程2.3 编写模拟登录代码2.4 代码说明 三、处理复杂情况3.1 动态参数3.2 多因素认证3.3 刷新T…...
Idea 和 Pycharm 快捷键
一、快捷键 二、Pycharm 中怎么切换分支 参考如下 如果在界面右下角 没有看到当前所在的分支,如 “Git:master” 3. 有了 4....
fody引用c++的dll合并后提示找不到
fody引用c的dll合并后提示找不到 解决方案: 在 FodyWeavers.xml 文件中添加配置 CreateTemporaryAssemblies‘true’ 官方文档:https://github.com/Fody/Costura <Weavers xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:noN…...
HAL库 IIC写和读函数
IIC写函数:HAL_I2C_Master_Transmit (); IIC读函数:HAL_I2C_Master_Receive ();写和读函数中的从机的地址最后一位由外部硬件电路控制。 int main(void) {/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------…...
初识flutter1
为什么使用flutter, 说直白一点,就是移动UI框架, 个人认为优势是: 1.一套代码adnroid 和ios 可以使用, 代码好维护 2.原生用户界面 3.开源、免费的 开发工具: 1.下载 java 包, 根据自己的电脑配置选择 官网下载: https://www.oracle.com/java/technologies/download…...
