翼度科技»论坛 编程开发 JavaScript 查看内容

Javascript中的every()与some()的区别和应用小结

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
Javascript中的every()与some()的区别和应用


every()定义和用法
  1. every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
  2. every() 方法使用指定函数检测数组中的所有元素:
复制代码

  • 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
  • 如果所有元素都满足条件,则返回 true。
  1. <strong>注意:</strong> every() 不会对空数组进行检测。
  2. <strong>注意:</strong> every() 不会改变原始数组。
复制代码
  1. isEvery:function(){
  2.                                 let a = [2,3,5,7,9]
  3.                                 let status = a.every(function(currentValue,index,arr){
  4.                                         console.log(currentValue) // 必须。当前元素的值
  5.                                         console.log(index)        // 可选。当前元素的索引值
  6.                                         console.log(arr)          // 可选。当前元素属于的数组对象
  7.                                         return currentValue >= 1  // 判断数组中是否所有值都大于等于1
  8.                                 })
  9.                                 console.log(status)
  10.                         }
  11.                                  // currentValue:2
  12.                                  // index:0
  13.                                  // arr:2,3,5,7,9,
  14.                                  // currentValue:3
  15.                                  // index:1
  16.                                  // arr:2,3,5,7,9,
  17.                                  // currentValue:5
  18.                                  // index:2
  19.                                  // arr:2,3,5,7,9,
  20.                                  // currentValue:7
  21.                                  // index:3
  22.                                  // arr:2,3,5,7,9,
  23.                                  // currentValue:9
  24.                                  // index:4
  25.                                  // arr:2,3,5,7,9,
  26.                                  // status:true
复制代码
every()参数说明
  1. function(currentValue, index,arr){
  2.         // currentValue        必须。当前元素的值
  3.         // index        可选。当前元素的索引值
  4.         // arr        可选。当前元素属于的数组对象
  5.     // 布尔值。如果所有元素都通过检测返回 true,否则返回 false。
  6.         }
复制代码
some()定义和用法
  1. some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
  2. some() 方法会依次执行数组的每个元素:
复制代码

  • 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
  • 如果没有满足条件的元素,则返回false。
  1. <strong>注意:</strong> some() 不会对空数组进行检测。
  2. <strong>注意:</strong> some() 不会改变原始数组。
复制代码
  1. isSome:function(){
  2.                                 let a = [2,3,5,7,9]
  3.                                 let status = a.some(function(currentValue,index,arr){
  4.                                         console.log(currentValue) // 必须。当前元素的值
  5.                                         console.log(index)        // 可选。当前元素的索引值
  6.                                         console.log(arr)          // 可选。当前元素属于的数组对象
  7.                                         return currentValue >= 1  // 判断数组中是否有值大于等于1
  8.                                 })
  9.                                 console.log(status)
  10.                         }
  11. // currentValue:2
  12. // index:0
  13. // arr:2,3,5,7,9
  14. // true
复制代码
some()参数说明
  1. function(currentValue, index,arr){
  2.         // currentValue        必须。当前元素的值
  3.         // index        可选。当前元素的索引值
  4.         // arr        可选。当前元素属于的数组对象
  5.     // 布尔值。如果所有元素都通过检测返回 true,否则返回 false。
  6.         }
复制代码
every()和some()的主要区别

every()会对数组中的每一个元素,即currentValue进行匹配,只有全部满足条件才会返回true,而some()中,只需有一个currentValue满足条件即可返回true,后面的currentValue不会再进行比较

every()和some()的应用场景

如下图,有一个表格,运用every()和some()来判断选中的表格状态,当选中其中一条数据时,判断他的当前状态,当选择多条数据时判断他的当前状态


vue代码片段
  1. data() {
  2.                         return {
  3.                                 statusDes:''
  4.                         }
  5.                 },
  6. methods:{
  7.                         handleSelectionChange:function(val){
  8.                                 const statusList = []  //定义数组,保存每一项状态
  9.                                 val.forEach((item) =>{
  10.                     // 遍历选择的项,把状态保存到数组
  11.                                         statusList.push(item.status)
  12.                                 })
  13.                 // every()会遍历每一个状态,当全部满足条件时,才返回true
  14.                                 this.statusDes = statusList.every(this.isAllQuery)
  15.                 // some()会遍历状态,只要一个满足,就返回true
  16.                 // this.statusDes = statusList.some(this.isAllQuery)
  17.                         },
  18.             // 过滤状态,即当状态显示:”是“时,返回true
  19.                         isAllQuery(status){
  20.                                 return status === '是'
  21.                         },
  22.                         changes:function(){
  23.                                 if(this.statusDes){
  24.                                         this.$alert('是', '成功状态', { confirmButtonText: '确定', type: 'success' })
  25.                                 }else {
  26.                                         this.$alert('否', '失败状态', { confirmButtonText: '确定', type: 'warning' })
  27.                                 }
  28.                         },
  29.                         isTrue(value){
  30.                                 return value >=1
  31.                         }
  32.                 }
复制代码
结果分析

every()全选,发现状态不同时:


some()全选,发现状态不同时:

到此这篇关于Javascript中的every()与some()的区别和应用的文章就介绍到这了,更多相关js every()与some()的区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/article/283922.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具