当前位置: 首页 > news >正文

for...in 和 for...of 的区别


for...in 和 for...of 都是 JavaScript 中的循环语句,但它们的作用和使用方式略有不同。

1、for..in 循环

for..in 循环用于遍历对象的可枚举属性,它会将对象的每个属性名称(或键名)作为迭代变量来遍历。

以下是 for...in 的基本语法

for (variable in object) {
}

其中,variable 表示每次迭代中当前属性的名称(或键名),object 表示要遍历的对象。

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

需要注意的是,for...in 循环遍历的是对象的可枚举属性,包括自有属性和继承属性。

因此,它并不适用于遍历数组和类数组对象。

 

2、for...of 循环

for...of 循环用于遍历可迭代对象的元素,它会将对象的每个元素作为迭代变量来遍历。

以下是 for..of 的基本语法:

for (variable of iterable) {
}

其中,variable 表示每次迭代中当前元素的值,iterable 表示要遍历的可迭代对象,如数组、字符串、Set、Map 等。

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

需要注意的是,for...of 循环只能遍历实现了选代器接口 (lterator) 的对象,因此它不适用于普通的对象。

此外,它遍历的是对象的元素值,而不是键名或属性名

3、总结

for...in 适用于遍历对象的属性名,而 for...of 适用于遍历数组、字符串等可迭代对象的元素值。

相关文章:

for...in 和 for...of 的区别

for...in 和 for...of 都是 JavaScript 中的循环语句,但它们的作用和使用方式略有不同。 1、for..in 循环 for..in 循环用于遍历对象的可枚举属性,它会将对象的每个属性名称(或键名)作为迭代变量来遍历。 以下是 for...in 的基本语法 for (variable …...

高并发系统 - 接口幂等技术方案,高可用系统架构与技术选型

幂等概念来自于数学,在计算机科学中,幂等表示一次后、或多次请求某一资源,应该有同样的影响效果。 在业务表现上一般是同样的数据效果,下面就常用的业务场景,来聊聊幂等的技术方案。 ----------------- 数据层 ----------------- 索引与事务 根据业务需要,给表添加唯一索…...

简单的手机电脑无线传输方案@固定android生成ftp的IP地址(android@windows)

文章目录 abstractwindows浏览android文件环境准备客户端软件无线网络链接步骤其他方法 手机浏览电脑文件公网局域网everythingpython http.server 高级:固定android设备IP准备检查模块是否生效 windows 访问ftp服务器快捷方式命令行方式双击启动方式普通快捷方式映射新的网络位…...

Unity3D 检测鼠标位置的Sprite像素颜色

思路 获取鼠标所在屏幕坐标(Vector2)通过相机ScreenToWorldPoint(Vector3)转为世界坐标 (注意Vector3的z是距离相机的距离,相机需要正交)通过SpriteRenderer访问边界Bounds通过Bounds.Contain检测世界坐标是否在SpriteBounds内通过比例计算来确定在Sprite内的UV坐标…...

layui input 监听事件

//监听表单单选框复选框选择 form.on(radio, function (data) { console.log(data.value); //得到被选中的值 }); //监听表单下拉菜单选择 form.on(select, function (data) { console.log(data.value); //得到被选中的值 }); //监听表单复选框选择 …...

一致性思维链(SELF-CONSISTENCY IMPROVES CHAIN OF THOUGHT REASONING IN LANGUAGE MODELS)

概要 思维链已经在很多任务上取得了非常显著的效果,这篇论文中提出了一种 self-consistency 的算法,来代替 贪婪解码 算法。本方法通过 采样多个思维链集合,然后LLM模型生成后,选择一个最一致的答案作为最后的结果。一致性思维链…...

腾讯云16核服务器配置大全_16核CPU型号性能测评

腾讯云16核CPU服务器有哪些配置可以选择?可以选择标准型S6、标准型SA3、计算型C6或标准型S5等,目前标准型S5云服务器有优惠活动,性价比高,计算型C6云服务器16核性能更高,轻量16核32G28M带宽优惠价3468元15个月&#xf…...

HTML中Input elements should have autocomplete attributes的解决方案

kwfwservice.php:1 [DOM] Input elements should have autocomplete attributes (suggested: “current-password”): (More info: https://goo.gl/9p2vKq) <input name"password" id"password" lay-verify"required" placeholder"密码&…...

2808. 使循环数组所有元素相等的最少秒数;1015. 可被 K 整除的最小整数;1001. 网格照明

2808. 使循环数组所有元素相等的最少秒数 核心思想&#xff1a;枚举每个元素作为相等元素最多需要多少秒&#xff0c;然后维护它的最小值。最多需要多少秒是怎么计算的&#xff0c;我们可以把相等值的下标拿出来&#xff0c;然后你会发现两个相邻下标&#xff08;相邻下标只的…...

Python爬虫在Web应用自动化测试中的应用

在Web应用开发过程中&#xff0c;自动化测试是确保应用质量和稳定性的重要环节。本文将介绍如何使用Python爬虫与自动化测试技术相结合&#xff0c;实现对Web应用进行自动化测试的方法和步骤。通过这种结合&#xff0c;我们可以提高测试效率、减少人力成本&#xff0c;并确保应…...

苹果手机短信删除了怎么恢复?3种有效方法介绍

手机短信是一种即时通信方式&#xff0c;人们可以使用短信来达到快速传递信息的目的。在没有网络或者网络不稳定的时候&#xff0c;短信仍然可以做到发送和接收&#xff0c;这弥补了其他网络通信软件的缺点。 所以说&#xff0c;手机短信仍然是我们生活中不可缺少的一部分。当…...

前端JavaScript中的 == 和 ===区别,以及他们的应用场景,快来看看吧,积累一点知识。

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 一、等于操作符 二、全等操作符 三、区别 小结 一、等于操作符 等于操作符用两个等于号&#xff08; &am…...

文献阅读:LIMA: Less Is More for Alignment

文献阅读&#xff1a;LIMA: Less Is More for Alignment 1. 内容简介2. 实验设计 1. 整体实验设计2. 数据准备3. 模型准备4. metrics设计 3. 实验结果 1. 基础实验2. 消解实验3. 多轮对话 4. 结论 & 思考 文献链接&#xff1a;https://arxiv.org/abs/2305.11206 1. 内容简…...

机器学习第十四课--神经网络

总结起来&#xff0c;对于深度学习的发展跟以下几点是离不开的: 大量的数据(大数据)计算资源(如GPU)训练方法(如预训练) 很多时候&#xff0c;我们也可以认为真正让深度学习爆发起来的是数据和算力&#xff0c;这并不是没道理的。 由于神经网络是深度学习的基础&#xff0c;学…...

React(react18)中组件通信04——redux入门

React&#xff08;react18&#xff09;中组件通信04——redux入门 1. 前言1.1 React中组件通信的其他方式1.2 介绍redux1.2.1 参考官网1.2.2 redux原理图1.2.3 redux基础介绍1.2.3.1 action1.2.3.2 store1.2.3.3 reducer 1.3 安装redux 2. redux入门例子3. redux入门例子——优…...

最新AI创作系统+ChatGPT网站源码+支持GPT4.0+支持ai绘画+支持国内全AI模型

一、AI创作系统 SparkAi系统是基于很火的GPT提问进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT系统&#xff1f;小编这里写一个详细图文教程吧&#x…...

react+umi项目中引入antd组件报错:“Button”不能用作 JSX 组件解决方案

具体报错信息 “Button”不能用作 JSX 组件。 Its type ‘(props: IProps) > React.ReactElement’ is not a valid JSX element type. 不能将类型“(props: IProps) > React.ReactElement”分配给类型“(props: any, deprecatedLegacyContext?: any) > ReactNode”。…...

常用算法模板

目录 快读、快输 快读、快输 #include <cstdio> #define Re register int #define LD double// 读整数 inline void in(Re &x) {int f 0; x 0; char c getchar();while (c < 0 || c > 9) f | c -, c getchar();while (c > 0 && c < 9) x …...

最全跨境独立站建站详细步骤解析

对于跨境电商卖家来说&#xff0c;无论是规避“鸡蛋放在同一个篮子里”的风险&#xff0c;还是追求更多的销售额和利润&#xff0c;多平台、多站点的布局都是其至关重要的战略。加之市场的变化带来了新的发展机遇&#xff0c;这也使得如今很多出海企业都在抢占独立站新风口。然…...

提升群辉AudioStation音乐体验,实现公网音乐播放

文章目录 本教程解决的问题是&#xff1a;按照本教程方法操作后&#xff0c;达到的效果是本教程使用环境&#xff1a;1 群晖系统安装audiostation套件2 下载移动端app3 内网穿透&#xff0c;映射至公网 很多老铁想在上班路上听点喜欢的歌或者相声解解闷儿&#xff0c;于是打开手…...

终极AI自瞄系统:5分钟搭建你的智能游戏瞄准助手

终极AI自瞄系统&#xff1a;5分钟搭建你的智能游戏瞄准助手 【免费下载链接】RookieAI_yolov8 基于yolov8实现的AI自瞄项目 AI self-aiming project based on yolov8 项目地址: https://gitcode.com/gh_mirrors/ro/RookieAI_yolov8 还在为游戏中的精准瞄准而烦恼吗&…...

周奕成(中国武术散打运动员)

周奕成&#xff0c;男&#xff0c;出生于辽宁省海城市&#xff0c;中国武术散打运动员&#xff0c;二级运动员&#xff08;三次认证&#xff09;&#xff0c; 所属队伍为辽宁省散打专业队&#xff0c;参赛体重区间&#xff1a;60kg → 65kg → 70kg 。赛事与等级认证1. 2023年 …...

如何快速解锁教学控制:JiYuTrainer极域电子教室防控制完全指南

如何快速解锁教学控制&#xff1a;JiYuTrainer极域电子教室防控制完全指南 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer 你是否曾在计算机课堂上&#xff0c;眼睁睁看着老师的演…...

飞秒激光微纳加工:原理、系统选型与典型应用实践

1. 飞秒激光加工&#xff1a;微纳世界的“手术刀”在精密制造领域&#xff0c;尤其是半导体、生物医疗和光子芯片这些前沿行业&#xff0c;对加工精度的要求已经到了纳米甚至亚纳米级别。传统的机械加工、长脉冲激光加工&#xff0c;在面对这种“微雕”任务时&#xff0c;往往显…...

对比直接购买与使用TaotokenTokenPlan的月度成本体感

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比直接购买与使用Taotoken TokenPlan的月度成本体感 对于个人开发者或小型团队而言&#xff0c;在大模型应用开发过程中&#xf…...

Spring Cloud Sleuth 响应式编程支持:WebFlux 与 Reactor 追踪实践

Spring Cloud Sleuth 响应式编程支持&#xff1a;WebFlux 与 Reactor 追踪实践 【免费下载链接】spring-cloud-sleuth Distributed tracing for spring cloud 项目地址: https://gitcode.com/gh_mirrors/sp/spring-cloud-sleuth Spring Cloud Sleuth 是 Spring Cloud 生…...

Layerdivider:5步完成AI智能图像分层,免费生成专业PSD文件

Layerdivider&#xff1a;5步完成AI智能图像分层&#xff0c;免费生成专业PSD文件 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider Layerdivider是一款革命…...

人大金仓KingbaseES适配踩坑大全:MyBatis-Plus项目里那些MySQL语法不兼容的“坑”怎么填?

人大金仓KingbaseES适配实战&#xff1a;MyBatis-Plus项目MySQL语法迁移避坑指南 当企业级应用需要从MySQL迁移到国产数据库人大金仓KingbaseES时&#xff0c;开发者往往会遇到各种SQL语法不兼容的问题。作为基于PostgreSQL内核的数据库&#xff0c;KingbaseES在语法细节、函数…...

手把手教你用Simulink搭建带Resolver的永磁同步电机FOC仿真模型(从电机库到代码生成)

从零构建永磁同步电机FOC仿真&#xff1a;集成旋变解码与代码生成的完整实践指南 在电机控制领域&#xff0c;快速验证算法并实现从仿真到硬件的无缝过渡是工程师面临的核心挑战。本文将带您完成一个包含旋转变压器&#xff08;Resolver&#xff09;信号处理的完整永磁同步电机…...

RISC-V RTOS移植:RT-Thread首个任务启动与上下文切换详解

1. 项目概述与核心思路今天咱们接着聊RISC-V内核单片机上移植RTOS那点事儿。之前两篇把基础环境、任务栈和上下文切换的坑都踩了一遍&#xff0c;这篇算是整个移植过程的“临门一脚”——怎么让CPU从初始化代码里跳出来&#xff0c;稳稳当当地跑起第一个用户任务。这事儿听起来…...