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♪(・ω・)ノ

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值