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

JS-- for...in和for...of

1,for...in 

用于遍历对象的可枚举属性(包括原型链上的),返回的是属性名(字符串)。

也可以遍历数组,但返回的是索引(字符串类型),不推荐用于数组。

2,for..of

用于遍历可迭代对象(如数组、字符串、Map、Set等),返回的是每一项的值。

不能直接用于普通对象(非可迭代对象)。

3,举例:

3.1  for...in遍历对象。不想要遍历原型链上的属性和方法通过obj.hasOwnProperty过滤掉

for (const key in data) {if (data.hasOwnProperty(key)) {const value = data[key];if (value !== undefined) {items.push(`"${key}":${stringify(value)}`);}}
}

3.2 用for...of替代for...in,那么通过Object.keys(obj),拿到所有的对象的key

你可以用 for (const key of Object.keys(obj)) 替换 for...in,这样更安全,只遍历自有属性。

for (const key of Object.keys(data)) {const value = data[key];if (value !== undefined) {items.push(`"${key}":${stringify(value)}`);}
}

for...in 用于遍历对象的属性名,返回字符串(包括原型链上的)。

for...of 用于遍历可迭代对象的值,不能直接用于普通对象。

http://www.lqws.cn/news/187615.html

相关文章:

  • IDEA 中 Undo Commit,Revert Commit,Drop Commit区别
  • 从微积分到集合论(1630-1910)(历史简介)——第4章——现代积分理论的起源(Thomas Hawkins)
  • Python | Windows11通过离线方式安装pyserial
  • idea中 maven 本地仓库有jar包,但还是找不到,解决打包失败和无法引用的问题———————————————— 版权声明:本文为博
  • 艾体宝案例丨Transavia如何借助LambdaTest测试平台高效起飞?
  • 基于深度强化学习的Scrapy-Redis分布式爬虫动态调度策略研究
  • maven微服务${revision}依赖打包无法识别
  • Xsens-AAA工作室品质,为动画师准备
  • 深入浅出多路归并:原理、实现与实战案例解析
  • Blaster - Multiplayer P145-P152: 多种武器
  • 使用docker 安装Redis 带配置文件(x86和arm)版本
  • Spring 团队详解:AOT 缓存实践、JSpecify 空指针安全与支持策略升级
  • ADI的BF609双核DSP怎么做开发,我来说一说(五)LAN口测试
  • 汽车免拆诊断案例 | 2010款捷豹XFL车制动警告灯、DSC警告灯异常点亮
  • LINUX 66 FTP 2 ;FTP被动模式;FTP客户服务系统
  • [蓝桥杯]搭积木
  • 【Zephyr 系列 11】使用 NVS 实现 BLE 参数持久化:掉电不丢配置,开机自动加载
  • [c#]判定当前软件是否用管理员权限打开
  • libGL error
  • CVPR 2025 | 港中文 MMLab 提出文生图模型 T2I-R1,文生图进入R1时刻!
  • [论文阅读] 人工智能 | 大语言模型计划生成的新范式:基于过程挖掘的技能学习
  • 【Bluedroid】蓝牙启动之 SMP_Init 源码解析
  • 外卖大战背后的创始人IP智慧:差异化、护城河与心智占领
  • MySQL基础(三)DQL(Data Query Language,数据查询语言)
  • 如何使用k8s安装redis呢
  • 深入理解 Python `asyncio` 的子进程协议(Subprocess Protocol)
  • C++算法-动态规划2
  • 数据库优化秘籍:解锁性能提升的 “潘多拉魔盒”
  • OpenLayers 分屏对比(地图联动)
  • 记录一个用了很久的git提交到github和gitee比较方便的方法