在项目中我们经常会用到判断某数组内是否存在某元素,在此我们有六种方法可以判断:
- Array.includes()方法,用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回false。
语法:arr.includes(searchElement, fromIndex)
searchElement:查询的元素,必选
fromIndex:从某索引值开始查询,可选
const arr = [1, 4, 2, 5, 7]
const rst = arr.includes(1) // true
const rst0 = arr.includes(1,1) // false
const rst1 = arr.includes(3) // false
- Array.find()方法,返回通过测试(函数内判断)的数组的第一个元素的值
语法:array.find(function(currentValue, index, arr),thisValue)
currentValue: 必需。当前元素
index:可选。当前元素的索引值
arr:可选。当前元素所属的数组对象
const arr = [1, 4, 2, 5, 7]
// 如果元素存在就返回一个值,如果不存在则返回undefined
const rst2 = arr.find((item)=> item === 2) // 2
const rst3 = arr.find(item => item === 3) // undefinde
// 它返回回调函数在遍历过程中符合条件的第一个元素
const rst4 = arr.find(item => item >= 2) // 4
- Array.findIndex()方法,返回传入一个测试条件(函数)符合条件的数组第一个元素位置,都不符合则返回 -1
语法:array.findIndex(function(currentValue, index, arr), thisValue)
currentValue: 必需。当前元素
index:可选。当前元素的索引值
arr:可选。当前元素所属的数组对象
语法格式和Array.find()差不多,但是Array.find()返回的是值,Array.findIndex()返回的是索引
const arr = [1, 4, 2, 5, 7]
const rst5 = arr.findIndex(item => item === 2) // 2
const rst6 = arr.findIndex(item => item === 3) // -1
// 返回回调函数在遍历过程中符合条件的第一个元素
const rst7 = arr.findIndex(item => item >= 2) // 1
- Array.indexOf()方法,可返回某个指定的字符串值在字符串中首次出现的位置,都不符合则返回 -1
语法:indexOf(searchvalue,start)
searchvalue: 必需。规定需检索的字符串值。
start:可选。规定在字符串中开始检索的位置
const arr = [1, 4, 2, 5, 7]
const rst14 = arr.indexOf(2) // 2
const rst15 = arr.indexOf(3) // -1
- Array.filter()方法,创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素
语法:array.filter(function(currentValue, index, arr), thisValue)
currentValue: 必需。当前元素
index:可选。当前元素的索引值
arr:可选。当前元素所属的数组对象
const arr = [1, 4, 2, 5, 7]
// 我们只需要判断返回数组的长度是否大于0
const rst11 = arr.filter(item => item === 2) // [2]
const rst12 = arr.filter(item => item === 3) // []
// 返回回调函数在遍历过程中符合条件的所有元素的数组
const rst13 = arr.filter(item => item >= 2)
- Array.some()方法,用于检测数组中的元素是否满足指定条件(函数提供),返回boolean值
语法:array.some(function(currentValue, index, arr), thisValue)
currentValue: 必需。当前元素
index:可选。当前元素的索引值
arr:可选。当前元素所属的数组对象
const arr = [1, 4, 2, 5, 7]
// 我们判断他的返回的boolean值
const rst8 = arr.some(item => item === 2) // true
const rst9 = arr.some(item => item === 3) //false
// 回调函数在遍历过程中符合条件返回true
const rst10 = arr.some(item => item >= 2) //true