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

foreach、for in 和for of的区别?

forEachfor...in 和 for...of 是 JavaScript 中用于遍历数据的三种不同的结构。它们在遍历数组、对象和可迭代对象(如 Set 和 Map)时非常有用。尽管它们都可以用于循环遍历,但它们之间存在一些重要的区别:

forEach

forEach 是数组的一个方法,用于遍历数组的每个元素并应用一个函数。这个函数可以接收两个参数:当前元素的值和当前元素的索引。

示例:

let arr = [1, 2, 3, 4, 5];
arr.forEach(function(value, index) {console.log(value); // 输出:1, 2, 3, 4, 5
});

for...in

for...in 语句用于遍历对象的可枚举属性。它不会遍历原型链上的属性,只遍历对象自身的属性。

示例:

let obj = {a: 1, b: 2, c: 3};
for (let key in obj) {console.log(key); // 输出:a, b, c
}

for...of

for...of 语句用于遍历可迭代对象(如 Array,Map,Set,String,TypedArray,arguments对象等等)。在每次迭代中,返回的是对象的值,而不是键。

示例:

let arr = [1, 2, 3, 4, 5];
for (let value of arr) {console.log(value); // 输出:1, 2, 3, 4, 5
}

总结一下主要的区别:

  • forEach 是专门为数组设计的,它遍历数组的每个元素并应用一个函数。
  • for...in 是用来遍历对象属性的,它遍历的是对象的自身可枚举属性,不包括原型链上的属性。
  • for...of 是用来遍历可迭代对象的,它返回的是对象的值,而不是键。

在实际开发中,你可以根据需要选择合适的循环结构。

相关文章:

foreach、for in 和for of的区别?

forEach,for...in 和 for...of 是 JavaScript 中用于遍历数据的三种不同的结构。它们在遍历数组、对象和可迭代对象(如 Set 和 Map)时非常有用。尽管它们都可以用于循环遍历,但它们之间存在一些重要的区别: forEach&a…...

【Effective C++】条款45: 运用成员函数模板接受所有兼容的类型

假设有如下继承结构: class Top{}; class Middle: public Top{}; class Bottom: public Middle{};public继承意味着is-a关系,所有的基类都是派生类,但反之则不是,例如所有的学生都是人,但不是所有的人都是学生. 派生类到基类的指针可以直接隐式转换 Top* pt1 new Middle; T…...

WSL1 安装 debian xfce 用xrdp 导入远程桌面

凑合能用 晃晃行 晃晃不行 而且比较卡 还经常报崩溃 sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils apt install locales -y 安装过完应该会提示设置locales,如果安装完之后想要更改相关设置,可以使用如下命令重新设置loca…...

WPF RelativeSource属性-目标对象类型易错

上一篇转载了RelativeSource的三种用法,其中第二种用法较常见,这里记录一下项目中曾经发生错误的地方,以防自己哪天忘记了,又犯了同样错误—WPF RelativeSource属性-CSDN博客 先回顾一下: 控件关联其父级容器的属性—…...

Java while 和do while 循环

循环是程序中的重要流程结构之一。循环语句能够使程序代码重复执行,适用于需要重复一段代码直到满足特定条件为止的情况。 所有流行的编程语言中都有循环语句。Java 中采用的循环语句与C语言中的循环语句相似,主要有 while、do-while 和 for。 另外 Ja…...

应用软件安全编程--03净化传递给 Runtime.exec() 方法的非受信数据

每个 Java 应用都有一个 Runtime 类的实例, 一般需要使用 shell 时调用它,从而可以在 POSIX 中 使用/bin/sh 或者在Windows 平台中使用cmd.exe。 当参数中包含以空格、双引号或者其他以一/开头 的用来表示分支的字符时,就可能发生参数注入攻…...

uniapp阻止冒泡的方法,点击事件嵌套点击事件,怎么阻止同时触发

uniapp阻止冒泡的方法 当我们遇到点击事件嵌套点击事件的时候&#xff0c;点击里边的事件&#xff0c;外边的也会跟着触发该怎么办&#xff1f; 起初我尝试用了css里的修改z-index属性的方法&#xff0c;把里边的<view>标签放在上边&#xff0c;结果两个事件还是同时触发…...

【云原生基础】了解云原生,什么是云原生?

&#x1f4d1;前言 本文主要讲了云原生的基本概念和原则的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1a;CSDN主页放风讲故事 &#x1f304;每日一句&#x…...

Android.bp探究

有时不知道Android.bp要咋写&#xff0c;特意看了下源码&#xff1a; ./build/soong/androidmk/androidmk/android.go 简单的Android.bp的模板是下面这个样子&#xff1a; [module type] {name: "[name value]",[property1 name]&#xff1a;"[property1 val…...

【LeetCode】415 字符串相加

415. 字符串相加 给定两个字符串形式的非负整数 num1 和num2 &#xff0c;计算它们的和并同样以字符串形式返回。 你不能使用任何內建的用于处理大整数的库&#xff08;比如 BigInteger&#xff09;&#xff0c; 也不能直接将输入的字符串转换为整数形式。 示例 1&#xff1a…...

【RP-RV1126】配置一套简单的板级配置

文章目录 官方配置新建一套新配置新建板级pro-liefyuan-rv1126.mk配置文件新建一个Buildroot的defconfigs文件 吐槽&#xff1a;RP-RV1126 的SDK奇怪的地方make ARCHarm xxx_defconfig 生成的.config文件位置不一样savedefconfig命令直接替换原配置文件坑爹的地方 Buildroot上增…...

解决uniapp的video标签和transition属性使用时出现错位的问题

template&#xff1a;三个视频都每个占满屏幕&#xff0c;点击按钮滚动最外层bgBox元素&#xff0c; style: 想要加上动画过渡效果&#xff1a; 这是显示第一个视频&#xff1a; 点按钮向上滑动滚动到第二个视频时&#xff1a; 视频错位了 &#xff0c;因为视频消失又出现的时候…...

电脑校园杂志电脑校园杂志社电脑校园编辑部2023年第9期目录

智慧校园 基于vue.js的“微校园”APP设计 吴秋伟 周慧 董锐 李仙云 余维 邓巧平 彭微1-3 探析AIGC对网络安全的革新&#xff1a;挑战与机遇共存 康良成 张朋4-6 文本信息自动摘要技术综述 滕宇飞7-9《电脑校园》投稿&#xff1a;cn7kantougao163.com 区块链应用于图书馆服务的策…...

NSSCTF做题第十页(1)

[GXYCTF 2019]禁止套娃 看源代码也没什么东西&#xff0c;扫一下看看 发现了git泄露 话不多说直接开整 下载下来了 flag.php 还是代码审计 <?php include "flag.php"; echo "flag在哪里呢&#xff1f;<br>"; if(isset($_GET[exp])){ if (!preg_…...

文件详细操作过程(C语言)

&#x1f31e;&#x1f31e;&#x1f31e;千淘万漉虽辛苦&#x1f31e;&#x1f31e;&#x1f31e; &#x1f31e;&#x1f31e;&#x1f31e;吹尽狂沙始到金&#x1f31e;&#x1f31e;&#x1f31e; &#x1f307;C语言文件操作 &#x1f34a;文件的定义&#x1f34b;什么是文…...

python使用ffmpeg来制作音频格式转换工具(优化版)

简介:一个使用python加上ffmpeg模块来进行音频格式转换的工具。 日志: 20231030:第一版,设置了简单的UI布局和配色,实现音频转为Mp3、AAC、wav、flac四种格式。可解析音频并显示信息,可设置转换后的保存路径 UI界面: 编程平台:visual studio code 编程语言:python 3…...

Debug技巧-不启用前端访问后端

在日常开发中&#xff0c;我们经常会遇到各种问题需要调试&#xff0c;前后端都启动需要耗费一定的时间和内存&#xff0c;方便起见&#xff0c;可以直接用抓包数据访问后端&#xff0c;这里我们需要用到Postman或者ApiFox 抓包数据 在系统前台触发后端请求&#xff0c;在控制…...

由CAB/PAB展开的一些思考

又到了一月保底一篇订阅号文章的时候&#xff0c;上周受到Oracle邀请&#xff0c;参加了在上海Oracle办公室举行的CAB&#xff08;The 13th Oracle China Customer Advisory Board Metting&#xff09;/ PAB&#xff08;The 3th Oracle China Partner Advisory Board Metting&…...

系列十五、idea全局配置

一、全局Maven配置 IDEA启动页面>Customize>All settings>Build,Execution,Deployment>Build Tools>Maven 二、全局编码配置 IDEA启动页面>Customize>All settings>Editor>File Encodings 三、全局激活DevTools配置 IDEA启动页面>Customize>A…...

高德Go生态建设与研发实践

序 高德在构建Go生态演化过程中&#xff0c;已经实现了QPS从0到峰值千万的飞跃&#xff0c;本篇文章主要介绍在此过程中积累的一些技术决策及性能优化和重构经验。阅读本文读者会有以下3点收获&#xff1a; 1.高德Go生态发展历程及现状分析 2.高德云原生Serverless落地情况&…...

飞腾CPU+银河麒麟V10系统安装Zotero 6.0.37保姆级教程(含Arch Linux ARM源转换避坑指南)

飞腾CPU银河麒麟V10系统安装Zotero 6.0.37全流程解析与深度优化指南 在国产化技术生态快速发展的背景下&#xff0c;飞腾CPU与银河麒麟操作系统的组合已成为科研机构和关键领域的重要选择。然而&#xff0c;当科研人员需要在这套平台上使用国际主流学术工具时&#xff0c;往往会…...

别再写面条代码了!用STM32CubeMX实战单片机分层架构(附完整项目源码)

从面条代码到工程级架构&#xff1a;STM32CubeMX分层实战指南 当你第一次用STM32CubeMX生成代码时&#xff0c;那种一键配置外设的畅快感令人上瘾。但三个月后打开项目&#xff0c;面对main.c里2000行的超级函数和全局变量乱飞的局面&#xff0c;连自己都看不懂当初写的什么——…...

Python小白也能搞定:用PCSE和WOFOST进行作物模型敏感性分析的保姆级教程

Python零基础实战&#xff1a;用PCSE/WOFOST实现作物模型敏感性分析全流程指南 引言&#xff1a;为什么选择PythonPCSE进行农业模型研究&#xff1f; 在精准农业和气候变化研究领域&#xff0c;作物生长模型正成为不可或缺的分析工具。作为联合国粮农组织推荐的经典模型&#x…...

Rustup终极指南:轻松管理你的Rust开发环境

Rustup终极指南&#xff1a;轻松管理你的Rust开发环境 【免费下载链接】rustup The Rust toolchain installer 项目地址: https://gitcode.com/gh_mirrors/ru/rustup 你是否曾经为管理多个Rust版本而烦恼&#xff1f;或者在不同项目间切换工具链时感到困惑&#xff1f;R…...

MATLAB代码:考虑绿证交易与综合需求响应的综合能源系统优化调度“注意:引号内文字为返回的标题

MATLAB代码&#xff1a;计及绿证交易和综合需求响应的综合能源系统优化调度 关键词&#xff1a;绿证交易 综合需求响应 综合能源系统 优化调度 仿真平台: matlabyalmipcplex 主要内容&#xff1a;代码针对综合能源系统低碳运行和源荷互动&#xff0c;考虑可再生能源电力消纳责…...

Cursor Pro免费激活终极指南:突破AI编程助手限制的完整技术方案

Cursor Pro免费激活终极指南&#xff1a;突破AI编程助手限制的完整技术方案 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached…...

第八章:实战项目案例

第八章&#xff1a;实战项目案例 8.1 项目一&#xff1a;Todo 应用&#xff08;Vue 3 Pinia&#xff09; 项目初始化 npm create vitelatest todo-app -- --template vue cd todo-app npm install pinia npm install -D vitejs/plugin-vue项目结构 todo-app/ ├── src/ …...

效率提升实测:OpenClaw+百川2-13B-4bits将周报时间从2小时缩短到15分钟

效率提升实测&#xff1a;OpenClaw百川2-13B-4bits将周报时间从2小时缩短到15分钟 1. 为什么我要折腾自动化周报 每周五下午&#xff0c;我的日历上总有一个雷打不动的"周报时间"。这个两小时的"酷刑"包括&#xff1a;翻遍Git提交记录、整理会议纪要碎片…...

别再死磕localhost了!Dify连接MySQL报错1130?手把手教你搞定IP授权(附MySQL 8.0+命令)

别再死磕localhost了&#xff01;Dify连接MySQL报错1130&#xff1f;手把手教你搞定IP授权&#xff08;附MySQL 8.0命令&#xff09; 当你在Dify中尝试将LLM生成的数据导入本地MySQL数据库时&#xff0c;可能会遇到一个令人头疼的错误&#xff1a;pymysql.err.OperationalError…...

3种突破限制方案让窗口尺寸控制效率提升60%

3种突破限制方案让窗口尺寸控制效率提升60% 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 你是否曾遇到这样的困扰&#xff1a;重要的应用程序窗口被固定尺寸无法调整&#xff0c…...