数组的some,every,map,foreaach方法的区别

数组的some,every,map,foreaach方法的区别

工作中我们经常会通过遍历对数组进行一些处理,但是有些特定的情况出现后我们可能会想要打断遍历,这个时候我们就需要注意了,不是所有的方法都能打断遍历的

map方法

map方法可以对数组进行遍历,但是在满足某些判断条件后,想要终止遍历是实现不了的,大家看代码

    let arr = [{ name: '老于', age: 18 }, { name: '张三', age: 18 }, { name: '李四', age: 22 }, { name: '王五', age: 12 }, { name: '老朱', age: 25 }]
    arr.map(item=>{
      if(item.age>15){
        item.name='老黄'
      return false
      }
    })
    console.log(arr);

看打印结果,在满足判断条件后仍然进行了全部的遍历
在这里插入图片描述

foreach方法

该方法与map方法一致,均不能打断,不再贴代码

some方法

some方法在满足条件想要打断数组遍历的话可以用return true来打断,some方法只要有一项为真就会返回true.

    let arr = [{ name: '老于', age: 18 }, { name: '张三', age: 18 }, { name: '李四', age: 22 }, { name: '王五', age: 12 }, { name: '老朱', age: 25 }]
    arr.some(item => {
      if (item.age == 18) {
        item.age = 19
        return true
      }
    })
    console.log(arr);

大家看打印结果,数组的第一个元素满足条件之后就直接跳出了循环
在这里插入图片描述

every方法

eevery方法也能打断循环,但是用法和some有些区别,every是在满足条件之后用return false来打断,切必须要有return true,every方法只要有一项不满足条件就会返回false

    let arr = [{ name: '老于', age: 12 }, { name: '张三', age: 18 }, { name: '李四', age: 22 }, { name: '王五', age: 12 }, { name: '老朱', age: 25 }]
    arr.every(item => {
      if (item.age > 15) {        item.name = '老黄'
        return false
      } else {
        return true
      }
    })
    console.log(arr);

打印结果如下
在这里插入图片描述

如果不加return true 的话就默认是return false 直接在第一个元素遍历时就退出了循环
在这里插入图片描述
因此,大家在工作的时候按需使用吧

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值