遍历
遍历数组、字符串、对象
1、for循环
2、foreach 只能遍历数组,可以不用知道数组length,遍历不能被打断(continue或者break或者return);数组本身的属性(例如arr.name="chen")不能被遍历
3、for in
遍历自身及原型上的可枚举属性
(为遍历对象而生)可以遍历对象、数组(数组的可枚举属性都会被遍历,包括继承的,自己本身的属性)、字符串;(ps:通过点运算符添加的属性默认都是可枚举的)
为什么for in遍历对象,‘不一定’是按顺序遍历的:https://blog.51cto.com/u_15057848/4172358
for in遍历数组的毛病
1.index索引为字符串型数字,不能直接进行几何运算
2.遍历顺序有可能不是按照实际数组的内部顺序,for in 循环的遍历顺序是不确定的,所以不要用它遍历数组!
3.使用for in会遍历数组所有的可枚举属性,包括原型。例如上栗的原型方法method和name属性
所以for in更适合遍历对象,不要使用for in遍历数组。
常与for in 联合使用的几个命令:
借助foreach可以过滤数组本身的属性;
obj.hasOwnProperty(i) 判断是否是自己的属性(可枚举+不可枚举)
Object.getOwnPropertyNames(obj) 返回对象obj的所有自身属性(可枚举+不可枚举)
Object.keys(obj) 遍历obj,返回自身所有的可枚举属性
4、for of
可以遍历 Array
,Map
,Set
,String
,TypedArray
,arguments 对象等等可迭代的对象,不能遍历单纯的Object,单纯的Object不可迭代!
ES6新语法,兼容性差点,可以遍历数组(只会遍历数组本身,不会遍历数组对象本身的属性和原型属性)且可以被打断,弥补了foreach的缺陷(遍历可以被中断);
5、jquery中的遍历:$.each()
https://www.cnblogs.com/zhaixr/p/7069857.html
综上:for in 适合遍历对象 ;foreach和for of适合遍历数组,字符串
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY