js some every数组方法的区别于详解

124 阅读1分钟

前言

在开发中对数组数据的常规操作我们会经常遇到一些必要的操作 例如:要检测数组中的元素是否满足指定条件,然后直接返回布尔值方便进行判定操作 这里javascript里的数组方法 some和every就能很好的解决这种问题


一、some方法

some() 方法用于检测数组中的元素是否满足指定条件,并且会依次执行数组的每个元素 他不会对空数组进行检测,也不会改变原始数组,方法返回布尔值 如果有一个元素满足条件,则表达式返回true

    const arr = ['test', 'test2']
    const bool = arr.some(item => item === 'test')
    console.log(bool) // true

数组对象也可使用,用法相同

	const arr = [
      {
        name: 'test'
      },
      {
        name: 'test2'
      }
    ]
    const bool = arr.some(item => item.name === 'test')
    console.log(bool) // true

二、every() 方法

every() 方法用于检测数组所有元素是否都符合指定条件,都符合情况下返回布尔值true,反之false 它不会对空数组进行检测,也不会改变原始数组

	const arr = ['test', 'test']
    const bool = arr.every(item => item === 'test')
    console.log(bool) // true

数组对象也可使用,用法相同

	const arr = [
      {
        name: 'test'
      },
      {
        name: 'test2'
      }
    ]
    const bool = arr.every(item => item.name === 'test')
    console.log(bool) // false

总结

两个都是用法相似的方法,只是略有区别 some() 方法如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测,所有元素都不满足条件时才返回false every() 方法如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。需要所有的元素都满足条件才返回true