es6之every、some使用

背景:实际开发中处理接口数据,ES5的方法相对麻烦且繁琐

先说结论:

  • every和some都接收一个回调函数作为参数,这个函数接收三个参数,分别是每一项元素、对应下标、数组本身,而它俩区别:
  • every用于判断数组中的每一项是否均符合条件,并返回一个布尔值,都符合返回true,有一个不符合就返回false,并不再继续执行
  • some用于判断数组中是否有符合条件的元素,有返回true,且不再继续执行,如果都不符合则返回false

老规矩,话不多说,上码,直接CV看效果

一、正常情况(写return

every举例说明:

  • 单个条件—判断班级中每个学生的身高是否都大于170(cm)
let arr = [
 {
    id: 1,
    height: 172,
    age: 16
  },
  {
    id: 2,
    height: 168,
    age: 18
  },
  {
    id: 3,
    height: 171,
    age: 17
  },
]
let result = arr.every((ele, index, arr)=>{
  console.log("ele", ele)
  return ele.height > 170
})
console.log('result: ',result) // false
// 可以根据result做后续的一些操作
// ...

在这里插入图片描述

  • 多个条件—判断班级中每个学生的身高是否都大于170(cm)并且年龄在15岁以上
let result = arr.every((ele, index, arr)=>{
  return ele.height > 170 && ele.height > 15
})
console.log(result) // false

这个结果可想而知,也是false,同样也是走到第二条判断不符合就不继续执行

some举例说明:

let arr = [
  {
    id: 1,
    height: 165,
    age: 16
  },
  {
    id: 2,
    height: 170,
    age: 18
  },
  {
    id: 3,
    height: 173,
    age: 17
  },
]
let result = arr.some((ele, index, arr)=>{
  console.log("ele", ele)
  return ele.height > 165
})
console.log('result: ',result)

在这里插入图片描述
可以看到有一个符合即返回true,后面也不再继续执行;

let result = arr.some((ele, index, arr)=>{
  console.log("ele", ele)
  return ele.height > 180
})

在这里插入图片描述
如果都不符合,则返回false

二、特殊情况(没写return

只是扩展,用的时候建议还是写上return
every如果不写return,则不会循环,默认返回false

let arr = [2,3,5,15,12]
let result = arr.every((ele, index, arr)=>{
  console.log("ele", ele)
  ele > 5
})
console.log('result: ',result); // false
let arr = [2,3,5,15,12]
let result = arr.every((ele, index, arr)=>{
  console.log("ele", ele)
  ele > 1
})
console.log('result: ',result); // false

every如果不写return,虽然会依次循环,但不会判断是否符合条件,也是默认返回false

let arr = [2,3,5,15,12]
let result = arr.some((ele, index, arr)=>{
 console.log("ele", ele)
  ele > 1
})
console.log('result: ',result)  // false

如果对你有帮助,赏个三连呗🙇‍🙇‍,不胜感激Thanks♪(・ω・)ノ

回答: some()方法只要其中一个元素满足指定的测试条件就会返回true,而every()方法必须所有元素都满足指定的测试条件才会返回true。\[1\]具体来说,some()方法对数组中的每个元素都执行一次指定的函数,如果有一个元素使得函数返回true,则some()方法返回true。而every()方法也对数组中的每个元素执行一次指定的函数,但是只有当所有元素都使得函数返回true时,every()方法才返回true。\[2\]需要注意的是,如果回调函数没有主动返回布尔值,some()方法会在遇到第一个使得函数返回true的元素后停止遍历,而every()方法会在遇到第一个使得函数返回false的元素后停止遍历。\[3\] #### 引用[.reference_title] - *1* [ES6 数组some()和every()使用](https://blog.csdn.net/qq_40190624/article/details/82533610)[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* [数组方法some()和every()](https://blog.csdn.net/AuB__/article/details/87980950)[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] - *3* [es6someevery方法使用;](https://blog.csdn.net/tdhszsh/article/details/124428191)[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 ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值