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

【js(8) for...in和for...of】

for...in和for...of

  • 一、for...in(es3)--遍历对象属性
  • 二、for...of(es6新增)--遍历集合中的元素

一、for…in(es3)–遍历对象属性

  • for...in 用于遍历对象的可枚举属性(包括从原型链继承的属性)。
  • 它返回的是属性的键(key),而不是值(value)
  • 不推荐用 for...in 遍历数组,因为数组的索引是字符串形式,且可能遍历到非数字键或继承的属性
  • 在for…in里面获取对象的属性值要使用动态属性名,即obj[key]
        let person = {name: "Tom",age: 25};for (let key in person) {console.log(key);         // 输出 "name", "age"console.log(person[key]); // 输出 "Tom", 25console.log(person.key); // 输出 undefined,因为 person.key 并不存在}

二、for…of(es6新增)–遍历集合中的元素

  • for...of 用于遍历可迭代对象(Iterable),直接获取属性的值(value)
  • 它适用于数组、字符串、Map、Set、NodeList 等数据结构。
  • 不会遍历原型链上的属性
//如果需要遍历的对象是类数组对象,用Array.from转成数组即可
var obj = {0:'one',1:'two',length: 2
};
obj = Array.from(obj);
for(var k of obj){console.log(k);//one//two
}
http://www.dtcms.com/a/298427.html

相关文章:

  • NVM踩坑实录:配置了npm的阿里云cdn之后,下载nodejs老版本(如:12.18.4)时,报404异常,下载失败的问题解决
  • LeetCode|Day25|389. 找不同|Python刷题笔记
  • IOPaint 图像修复工具,学习笔记
  • clFlush和clFinish的区别 (来自deepseek)
  • ZYNQ芯片,SPI驱动开发自学全解析个人笔记【FPGA】【赛灵思
  • 电子电气架构 --- 车载软件与样件产品交付的方法
  • 【HarmonyOS】鸿蒙应用开发中常用的三方库介绍和使用示例
  • QT6 源,七章对话框与多窗体(14)栈式窗体 QStackedWidget:本类里代码很少。举例,以及源代码带注释。
  • 浅谈业务时序数据异常检测
  • [SAP ABAP] 请求释放及传输
  • 2025年7月区块链与稳定币最新发展动态深度解析
  • 智慧电视:开启养老新时代
  • freqtrade关于获取k线数量,以及显示时间的问题
  • 笔试——Day18
  • 【世纪龙科技】新能源汽车电驱动总成装调与检修仿真教学软件
  • 【世纪龙科技】数字化技术解锁新能源汽车电驱动总成装调与检修
  • 系统编程——文件IO
  • Effective C++ 条款01:视 C++ 为一个语言联邦
  • day33:零基础学嵌入式之网络——HTTP服务端
  • 某AI智能问答系统规划与设计
  • 【Java】JVM虚拟机(基本概念、类加载机制)
  • 苍穹外卖笔记集锦
  • 函数f(int a,int b),a和b的地址关系?
  • 《使用Qt Quick从零构建AI螺丝瑕疵检测系统》——5. 集成OpenCV:让程序拥有“视力”
  • 【NetTopologySuite库】使用Polygonizer线构面,并获取割边、悬挂边、无效环
  • ✨ 使用 Flask 实现头像文件上传与加载功能
  • TIM 实现定时中断【STM32L4】【实操】
  • 原生微信小程序如何调整开发版本
  • 全面解析MySQL(3)——CRUD进阶与数据库约束:构建健壮数据系统的基石
  • 数仓主题域划分