JS中的forEach,for in,for of和for的遍历优缺点及区别

本文详细介绍了JavaScript中四种常用的遍历方式:forEach、for in、for of和常规for循环的优缺点和适用场景。forEach简洁但无法修改数组,for in适合遍历对象属性,for of适用于迭代可迭代对象,而for循环结构清晰但较易出错。当遇到不能遍历对象的情况,可以将对象转化为数组类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

forEach:可以三个参数,第一个是value,第二个是index,第三个是数组体

1.定义:

用于调用数组的每个元素,并将元素传递给回调函数

2.缺点:

  • 不能同时遍历多个集合,在遍历的时候无法修改和删除集合数据,方法不能使用break,continue语句跳出循环,或者使用return从函数体返回,对于空数组不会执行回调函数。forEach不可以遍历对象,这也是它和for in的一个区别

3.优点:

  • 便利的时候更加简洁,效率和for循环相同,不用关心集合下标的问题,减少了出错的效率

for in: 大部分用于遍历对象

1.定义:

  • 用于循环遍历数组或对象属性,fot in循环里面的index是string类型的,代码每执行一次,就会对数组的元素或者对象的属性进行一次操作

2.缺点:

  • 某些情况下,会出现随机顺序的遍历,因为里面的值是string类型,所以增加了转换过程,因此开销较大

3.优点:

  • 可以遍历数组的键名,遍历对象简洁方便

for of:可遍历map,object,array,set string等

1.定义:

  • 用来遍历数据,比如组中的值

2.优点:

  • 避免了for in的所有缺点,可以使用break,continue和return,不仅支持数组的遍历,还可以遍历类似数组的对象支持字符串的遍历最简洁,最直接的遍历数组的语法
  • 支持map和Set对象遍历

3.缺点:

  • 不适用于处理原有的原生对象(原生对象是一个子集,包含一些在运动过程中动态创建的对象)

for:

1.优点:

  • 程序简洁,结构清晰,循环初始化,循环变量化,循环体和循环条件位置突出

2.缺点:

  • 结构比while循环复杂,容易出编码错误
  • 不可以遍历对象

forEach,forof,for不能遍历对象的解决方法

把对象先转化为数组类型

//有一个对象:
let obj={a:1,b:2,c:3}
//用Object.keys属性转化
let obj2=Object.keys(obj)
//最后就可以用来遍历了
for (let i=0;i<obj2.length;i++){
  console.log(obj2[i])
}
//输出结果就能出来了,forEach,for of同理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值