for of 与for in、数组的新增遍历方法

本文介绍了JavaScript中for...in与for...of的区别,for...in遍历对象属性和数组索引,可能涉及原型链,而for...of主要用于遍历可迭代对象如数组元素。还探讨了数组的新增遍历方法,包括map、filter、some、every和reduce,详细解释了它们的用途和返回结果。
摘要由CSDN通过智能技术生成

对象属性遍历

在这里插入图片描述

  • for… in 遍历一个都想自由的、继承的、可枚举的、非Symbol的属性,还能遍历原型上的属性,所以for…in拿到的是对象本身及对象原型上的属性

  • for…of遍历可迭代对象

数组遍历

for … in

for in遍历数组,会存在一些问题,比如:

  • index索引为字符串型数字,不能直接进行几何运算
var arr = [1,2,3]
    
for (let index in arr) {
   
  let res = index + 1
  console.log(res)
}
//01 11 21
  • 遍历顺序有可能不是按照实际数组的内部顺序
  • 使用for in会遍历数组所有的可枚举属性,包括原型。
  • 如果不想遍历原型方法和属性的话,可以在循环内部判断一下,使用 hasOwnProperty() 方法可以判断某属性是不是该对象的实例属性
var arr = [1,2,3]
Array.prototype.a = 123
    
for (let index in arr) {
   
  let res = arr[index]
  console.log(res)
}
//1 2 3 123

//使用 `hasOwnProperty()` 方法可以判断某属性是不是该对象的实例属性
for(let index in arr) {
   
    if(arr.hasOwnProperty(<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值