js some every数组方法的区别于详解
前言
在开发中对数组数据的常规操作我们会经常遇到一些必要的操作
例如:要检测数组中的元素是否满足指定条件,然后直接返回布尔值方便进行判定操作
这里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