js for in 和 for of
for in
- 遍历 对象 得到其 键值
包括非整数类型的名称和继承的那些原型链上面的属性也能被遍历 - 属性需要具有
enumerable
为什么不推荐使用for in
for in 会遍历出原型上的方法
- 类型改变:遍历出的属性值是字符串,而不是原本类型,如数字
- 遍历原型:遍历的是对象的枚举属性,包括自身属性以及原型链上的属性
- 顺序不明:遍历顺序是对象属性的枚举顺序,并不一定按数组的下标顺序遍历
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 属性
内容会不断更新,欢迎批评指正。
分类:
# JavaScript
标签:
ecmascript
, javascript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本