【JS】Array数组的every方法使用

一、every方法定义

  • 定义:every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。【即对每个元素的判断取交集 && ,得到最终的布尔结果】
  • 返回值:布尔值,true或者false。

⚠️注意

every 不检测空数组!但是会返回true

every 不会改变原始数组元素!

对于空数组返回true的解释:

every 和数学中的全称量词"任意(∀)"类似。因此,在先行条件不成立的情况下,结论返回为真。所以特别的,对于空数组,它只返回 true。 (这种情况属于无条件正确,因为空集的所有元素都符合给定的条件。)

 二、应用场景

这个函数的提供非常适用于多条件判断是否同时成立的情况。

比如,当对一个对象数组进行搜索筛选filter的时候,我们需要满足search1、search2、search3等等条件的值。

这时候我们可以将多个条件集合在一个对象中,并且字段key名和目标搜索数组的key一致

let seachValueList= {
   search1:searchvalue1,
   search2:searchvalue2,
   ....
}

这样就可以利用every方法,而不用写一个长长的 if 语句了,并且可以动态扩展搜索条件。

  console.log('search', searchValueList)
  // -- tableFilterData:获取条件筛选后的数据;tableData原表格数据
  tableFilterData = tableData.filter((item) => {
        // 条件搜索的所有key都every check一下
        // 先用Objec.keys将字段key转为数组
        return Object.keys(searchValueList).every((key) => {
          // includes代表使用模糊搜索
          return item[key].includes(searchValueList[key])
        })
  })
  console.log('筛选出来的data', this.tableFilterData)

你可能感兴趣的:(JavaScript学习笔记,javascript,开发语言,ecmascript)