数组遍历的方法以及优势和缺点

for循环
        const arr = [1, 2, 3, 4, 5, 6]
        for (let i = 0; i < arr.length; i++) {
            console.log(arr[i])
        }
forEach
        const arr = [1, 2, 3, 4, 5,6]
        arr.forEach(element => console.log(element))

forEach优点是书写上比较简洁;缺点是每个元素都必须遍历

every
        const arr = [1, 2, 3, 4, 5, 6]
        arr.every(element => {
            if (element === 3) {

            } else {
                console.log(element)
            }
            return true
        })

如every示例代码,即此时如果需要对循环进行停止或者跳过的操作,
for循环可以使用breakcontinue完成操作
every的函数默认返回值是flase,可通过函数的返回值完成操作
forEach对break、continue提示语法不支持。

for…in
        const arr = [1, 2, 3]
        arr.a = 7
        for (const key in arr) {
        //(===)既检查值也检查类型
            if (key * 1 === 2) {
                continue
            }
            console.log(key, arr[key])
        }
        // 0 1
        // 1 2 
        // 2 3
        // a 7

由以上代码可知,for…in支持break、continue控制元素。但由结果可知通过for…in遍历数组是有瑕疵的。for…in实际是为遍历对象(object)设计的。

tips:

  • 之所以for…in能遍历的原因
  1. 数组也是对象
  2. 数组是可遍历的
  • key索引是字符串,(==)只检查值不检查类型
for…of

不仅支持数组的遍历,还可以遍历对象,支持Map和Set遍历。只要部署了Iterator的数据结构都可以使用 for…of完成遍历操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值