数组的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
    评论
some和every方法是JavaScript数组的两个常用方法,用于判断数组中的元素是否满足指定条件。 some方法会遍历数组中的每个元素,只要有一个元素满足条件,就返回true;如果所有元素都不满足条件,则返回false。\[1\]例如,对于数组\[2, 4, 6, 8, 10\],使用some方法判断是否存在元素小于5的情况,结果为true,因为数组中的2小于5。 every方法也会遍历数组中的每个元素,但要求所有元素都满足条件,才返回true;只要有一个元素不满足条件,就返回false。\[2\]例如,对于数组\[2, 4, 6, 8, 10\],使用every方法判断是否所有元素都小于20,结果为true,因为所有元素都小于20。 需要注意的是,当遍历到某个元素不满足条件时,some方法会停止遍历,而every方法也会停止遍历并直接返回false。\[3\] 总结起来,some方法用于判断数组中是否存在满足条件的元素,而every方法用于判断数组中的所有元素是否都满足条件。 #### 引用[.reference_title] - *1* *3* [JS 数组方法 every 和 some 的区别](https://blog.csdn.net/linyichao123/article/details/128229897)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [js中some和every用法](https://blog.csdn.net/qq_41328247/article/details/130930506)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值