js for in 和 for of

for in

  1. 遍历 对象 得到其 键值
    包括非整数类型的名称和继承的那些原型链上面的属性也能被遍历
  2. 属性需要具有 enumerable
    为什么不推荐使用for in

for in 会遍历出原型上的方法

  1. 类型改变:遍历出的属性值是字符串,而不是原本类型,如数字
  2. 遍历原型:遍历的是对象的枚举属性,包括自身属性以及原型链上的属性
  3. 顺序不明:遍历顺序是对象属性的枚举顺序,并不一定按数组的下标顺序遍历

for of

被设计用于遍历数组

一个数据结构只要部署了 Symbol.iterator 属性, 就被视为具有 iterator 接口, 就可以使用 for of 循环。

使对象可进行 for of 方法:

Object.entries(obj) // 返回 可遍历 键值对 数组
Object.keys(obj) // 返回 可遍历 键 数组
Object.values(obj) // 返回 可遍历 值 数组

让一般对象使用 for of 的方法:

方法一: 使用 Object.keys() 获取对象的 key值集合后,再使用 for of

const obj = {a: 'x', b: 'y'};
for (let i of Object.keys(obj)) {
  console.log(i) // a, b
}

方法二: 给一个对象添加 Symbol.iterator 属性

posted @   海胆Sur  阅读(13)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示