JS for循环的3种使用

2023-11-19

1.1 for循环使用:

1)for in:

遍历存放对象的一维数组

var arr=[{"id":1,"name":"張山"},{"id":2,"name":"李四"}];
				for(var i in arr){
					console.log(i);
				}

结果:仅仅会得到数组的索引会遍历数组的原型属性),而且会打印出部分原型,不推荐这种使用方式,可以遍历对象属性(;

0
VM42759:265 1
VM42759:265 delByIndex
VM42759:265 delAllRepeat
VM42759:265 removeById
VM42759:265 sort_by

arr属性:

0: {id: 1, name: "張山"}
1: {id: 2, name: "李四"}
length: 2
__proto__: Array(0)
delAllRepeat: ƒ (type)
delByIndex: ƒ (index)/**@lends Array# */{ //return len < index ? this : this.slice(0, index).concat(this.slice(index+1)); index = +index; if(index==-1)
removeAll: ƒ ()
removeById: ƒ (_384,id)
sort_by: ƒ (map, desc)
add: ƒ (el, index)
all: ƒ (a)

2)forEach

forEach遍历存放对象的一维数组;

数组对象.forEach(函数定义/已定义函数的函数名);

dataArray.forEach(function(item,index){
					console.log("arr["+index+"]"+item);
				});

结果:

如果数组对象dataArray为null则会报错,值为[]不会执行forEach函数而且不会报错,推荐使用但是它不能遍历对象。

arr[0][object Object]
VM43346:264 arr[1][object Object]
VM43346:264 arr[2][object Object]
VM43346:264 arr[3][object Object]
VM43346:264 arr[4][object Object]
VM43346:264 arr[5][object Object]
VM43346:264 arr[6][object Object]
VM43346:264 arr[7][object Object]
VM43346:264 arr[8][object Object]
VM43346:264 arr[9][object Object]
VM43346:264 arr[10][object Object]
VM43346:264 arr[11][object Objec

1.2 取对象不存在的属性得到的值为undefined;

3)for-of循环

​ 一个数据结构只要部署了Symbol.iterator属性,就被视为具有iterator接口,就可以用for…of循环遍历它的成员。也就是说,for…of循环内部调用的是数据结构的Symbol.iterator方法。
  for…of循环可以使用的范围包括数组、Set 和 Map 结构、某些类似数组的对象(比如arguments对象、DOM NodeList 对象)、后文的 Generator 对象,以及字符串

总结

for in 适用于纯对象的遍历,并且只能输出可枚举属性

forEach适用于需要知道索引值的数组遍历,但是不能中断

for of适用于无需知道索引值的数组遍历,因为可以中断。另外对于其他字符串,类数组,类型数组的迭代,for of也更适用

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS for循环的3种使用 的相关文章

随机推荐

  • FreeBSD开启SSH远程登录

    1 安装时选择上 SSH 或者源码安装 SSH 2 使用 root 登陆系统 3 使用 ee 编辑器编辑 ee etc inetd conf 去掉 ssh 前的 按 ctrl c 再输入 exit 保存退出 4 编辑 ee etc rc c
  • unity零基础学习

    提示 本人作为萌新记录unity学习路线 后期会根据学习情况不断进行修改 自学途径主要依赖siki学院 前言 伴随游戏行业的兴起 unity引擎的使用越来越普遍 本文章主要记录博主本人入门unity的相关记录大部分依赖siki学院进行整理
  • 【入门指南】从Python入门人工智能指南

    作为一个学习者 什么样的学习方式 学习路径能够帮助我们更高效 便捷的入门人工智能 不至于错过奔驰而过的 AI 号列车 人工智能时代持续发展 成为新一轮产业变革的核心驱动力和引领未来发展的战略技术 不仅受到政策的支持 国内人工智能市场规模也在
  • 在VS Code中使用Kotlin

    在VS Code中使用Kotlin 当前Google有意用Kotlin来替代Java 今后在Android开发中 可能Kotlin会成为标准语言 Kotlin语言是由JetBrains公司开发的 就是做IntelliJ IDEA的那家公司
  • Python示例,它演示了如何使用Python中的类和继承来创建一个简单的形状类层次结构:

    定义一个形状类 class Shape def area self pass 定义一个矩形类 继承自形状类 class Rectangle Shape def init self width height self width width
  • Pycharm 安装插件

    Pycharm 安装插件 Pycharm 安装插件 Pycharm 中一些值得安装的插件 Rainbow Brackets IdeaVim Markdown Navigator Translation 如果说编辑器是程序员的武器 那么插件就
  • Notion笔记搭建博客网站 - NotionNext

    NotionNext是什么 NotionNext是我在Github上开源的基于Next js框架开发的博客生成器 目的是帮助写作爱好者们通过Notion笔记快速搭建一个独立站 从而专注于写作 而不需要操心网站的维护 它将您的Notion笔记
  • 多线程系列之——事件内核对象

    所有内核对象里面事件内核对象是最简单的一个 它包括一个使用计数 还有两个布尔值 一个布尔值用来表示事件是手动重置事件还是自动重置事件 另一个布尔值表示当前是否处于触发状态 当一个手动重置事件被触发的时候 所有等待该事件的线程都能变成调度状态
  • -day14--模块与内置模块

    day14 模块 课程目标 掌握Python中常用模块的使用方法 今日概要 自定义模块 包 第三方模块 内置模块 1 2 1 自定义模块 1 1 模块和包 import hashlib def encrypt data 数据加密 hash
  • 【全站首发】最详细的jetbrains space使用方法

    目录 一 注册一个Jetbrains账号 如果有可以跳过 二 创建或加入一个space团队 包含下载软件 三 Jetbrains Space软件配置 四 软件的使用 一 注册一个Jetbrains账号 如果有可以跳过 打开Jetbrains
  • 测试工作总结

    1 软件测试定义 2 基本方法 3 流程规范 1 新需求 需求文档 原型图 蓝湖 文档分析 评审 测试计划 测试用例编写 冒烟测试用例编写 计划用例评审 跟项目组 项目组提交测试 程序员自测报告 验证自测报告 跟公司而定 有的是冒烟测试 开
  • 在 IBM Bluemix 开发及使用 Docker Images

    Node Js是云端平台开发App的主要工具 以下范例是将Bluehatter App以3中方式执行包含 1 以Node Js在localhost开发Bluehatter App后直接Deloy至IBM Bluemix云端平台执行 2 将前
  • yolov5量化部署(基于openvino和tensorrt)

    yolov5 openvino量化部署 首先 下载YOLOv5源码 安装YOLOv5和OpenVINO的python依赖 git clone https github com ultralytics yolov5 git pip insta
  • 常用的vue指令语法用法

    一 v text 相当于js的innerText 二 v bind 动态绑定属性 简写是冒号 三 v on 绑定事件 简写是 用于事件的绑定类似于js的onclick 四 v model 可以用 v model 指令在表单
  • 【Python-利用动态二维码传输文件(二)】实现文件二进制读取、利用base64编码把文件拆分成多张二维码、重组拆分后的文件并验证。

    为了使用二维码传输文件 上一篇文章已经实现了获取信息存入二维码并打印 由于单个二维码存储的信息量是有限的 而且文件一般也比较大 所以必须把文件先进行拆分 拆分后一块一块信息存入多张二维码中 最后通过图像识别 把所有二维码信息准确读取后再重新
  • 初级2 题目五 有关排序问题的补充

    1 归并排序的额外空间复杂度可以变成O 1 但是非常难 不需要掌握 可以搜 归并排序 内部缓存法 2 快速排序可以做到稳定性问题 但是非常难 不需要掌握 可以搜 01 stable sort 3 有一道题目 是奇数放在数组左边 偶数放在数组
  • 【老生谈算法】基于matlab指纹识别系统设计与算法原理详解(论文+程序源码)——指纹识别

    老生谈算法 基于matlab指纹识别系统设计与算法原理 论文 程序源码 大家好 今天给大家介绍基于matlab的指纹识别系统设计与算法原理 论文 程序源码 文章目录 老生谈算法 基于matlab指纹识别系统设计与算法原理 论文 程序源码 1
  • 服务器可以放置多少个网站?

    服务器能容纳的网站数量 是根据每个网站的大小 以及服务器的整体配置来确定的 那么影响服务器容纳网站数量的因素有哪些呢 一 网站大小 能影响一个网站大小的因素是比较多的 例如网站的设计 网站里的内容大小 通常网站尺寸比较大 动态页面比较多的
  • QtCreator 应用程序主窗口——菜单栏(QMenuBar)和工具栏(QToolBar)

    1 菜单栏 QMenuBar 和工具栏 QToolBar 1 1 将菜单项放在工具栏上面 将Action编辑器中的相应动作直接拖到工具栏上面 1 2 使用资源 添加资源文件 gt Qt资源文件 gt 添加前缀 gt 添加文件 gt 保存 使
  • JS for循环的3种使用

    1 1 for循环使用 1 for in 遍历存放对象的一维数组 var arr id 1 name 張山 id 2 name 李四 for var i in arr console log i 结果 仅仅会得到数组的索引会遍历数组的原型属