JS中涉及到数组查询的方法见下表:

方法

描述

参数

返回值

indexOf()

搜索数组中的元素,并返回它所在的位置。

要搜索的元素 ,查找的起始位置

元素第一次出现的索引

lastIndexOf()

搜索数组中的元素,并返回它最后出现的位置

要搜索的元素 ,查找的起始位置

元素最后一次出现的索引

includes()

判断一个数组是否包含一个指定的值

要查找的元素值

Boolean

find()

返回符合传入测试(函数)条件的数组元素

函数,this

符合条件的第一个元素的

findIndex()

返回符合传入测试(函数)条件的数组元素索引

函数,this

符合条件的第一个元素的索引

every()

检测数值元素的每个元素是否都符合条件

函数,this

元素的

some()

检测数组元素中是否有元素符合指定条件

函数,this

元素的

filter()

检测数值元素,并返回符合条件所有元素的数组

函数,this

数组

这些都是数组的实例方法

indexOf() 方法

搜索数组中的元素,并返回它所在的位置。在数组中从前往后查找一个元素,并返回索引,找不到则返回-1

array.indexOf(item,start)

参数:
① item 要查找的元素 ,必须
② start 开始查找的起始位置,可选,默认从位置0开始查找

var arr= [1,2,3,1,2];
console.log(arr.indexOf(2));      //1,从前到后找到的第一个2的索引是1
console.log(arr.indexOf(2,4));    //4,从第5个元素开始查收元素2,找到的元素的索引是4
console.log(arr.indexOf(4))       //-1,没有到元素4

lastIndexOf() 方法

搜索数组中的元素,并返回它最后出现的位置。在数组中从后向前查找一个元素,并返回索引,找不到则返回-1

array.lastIndexOf(item,start)

参数:
① item 要查找的元素 ,必须
② start 开始查找的起始位置,可选,默认将从字符串的最后一个元素开始检索

var arr= [1,2,3,1,2];
console.log(arr.lastIndexOf(2))   //4,从后到前找到的第一个2的索引是4

includes()方法

判断一个数组是否包含一个指定的值,返回 true 或 false

arr.includes(searchElement, fromIndex)

参数:
① searchElement 必须。需要查找的元素值。
② fromIndex 可选。开始查找的起始位置,默认为 0。

var arr1=[1,2,3,4,5];
console.log(arr1.includes(3));  //true

find()方法

返回数组中第一个满足条件的元素,测试条件是find()的参数,如果没有满足要求的元素,则返回undefined。

array.find(function(currentValue, index, arr),thisValue)

参数:
① function(currentValue, index,arr) 查询条件,必须,数组每个元素需要执行这个函数

  • currentValue 必需。当前元素
  • index 可选。当前元素的索引值
  • arr 可选。当前元素所属的数组对象

② thisValue 可选。 传递给函数的值一般用 “this” 值。默认为 “this” 值

var arr1=[1,2,3,4,5];
var res=arr1.find(function (value,index,arr1) {
  return value>3;
});
console.log(res);  //4

findIndex()方法

返回数组中第一个满足要求的元素的索引,参数同样是一个函数,如果没有满足要求的元素,则返回-1。

array.findIndex(function(currentValue, index, arr), thisValue)

参数:
① function(currentValue, index,arr) 查询条件,必须,数组每个元素需要执行这个函数

  • currentValue 必需。当前元素
  • index 可选。当前元素的索引值
  • arr 可选。当前元素所属的数组对象

② thisValue 可选。 传递给函数的值一般用 “this” 值。默认为 “this” 值

var arr1=[1,2,3,4,5];
var res=arr1.findIndex(function (value,index,arr1) {
  return value>3;
});
console.log(res);  //3

filter()方法

遍历数组中的每一项,返回过滤后的结果数组,用来创建一个新数组,对原数组没有影响。

array.filter(function(currentValue,index,arr), thisValue)

参数:
① function(currentValue, index,arr) 过滤条件,必须,数组每个元素需要执行这个函数

  • currentValue 必需。当前元素
  • index 可选。当前元素的索引值
  • arr 可选。当前元素所属的数组对象

② thisValue 可选。 传递给函数的值一般用 “this” 值。默认为 “this” 值

var arr1=[1,2,3,4,5];
var arr2=arr1.filter(function (value,index,arr1) {
  return value>3;
});
console.log(arr1);  //[1, 2, 3, 4, 5]
console.log(arr2);  //[4, 5]

every()方法

遍历数组中的每一项,检测数值元素的每个元素是否都符合条件,结果全部为true,返回true,否则返回false

array.every(function(currentValue,index,arr), thisValue)

参数:
① function(currentValue, index,arr) 检测条件,必须,数组每个元素需要执行这个函数

  • currentValue 必需。当前元素
  • index 可选。当前元素的索引值
  • arr 可选。当前元素所属的数组对象

② thisValue 可选。 传递给函数的值一般用 “this” 值。默认为 “this” 值

var arr1=[1,2,3,4,5];
var result=arr1.every(function (value,index,arr1) {
  return value>3;
});
console.log(result);  //false

some()方法

对数组中的元素进行遍历,检测数组元素中是否有元素符合指定条件,只要有结果为true,返回true,全部为false,返回false

array.some(function(currentValue,index,arr),thisValue)

参数:
① function(currentValue, index,arr) 检测条件,必须,数组每个元素需要执行这个函数

  • currentValue 必需。当前元素
  • index 可选。当前元素的索引值
  • arr 可选。当前元素所属的数组对象

② thisValue 可选。 传递给函数的值一般用 “this” 值。默认为 “this” 值

var arr1=[1,2,3,4,5];
var res=arr1.some(function (value,index,arr1) {
  return value>3;
});
console.log(res);  //true