1、Array.prototype.includes(findVal, fromIndex):查找某元素是否包含在数组中
入参:
findVal----要查找的元素,必填
fromIndex-----指定开始查找的索引位置,非必填,默认为0
返回结果:
boolean:true---元素包含在数组中,false-不包含
示例:[2,3,45].includes(2)----true [2,3,45].includes(1)----false [2,3,45].includes(3, 1)----true
2、Array.indexOf(findVal, fromIndex):从前往后查,返回元素在数组中第一次出现的位置
入参:
findVal---要查找的元素,必需
fromIndex---从指定的索引处开始查找,非必需,默认0
注意:fromIndex=Infinity,直接从第一位元素查起;fromIndex=负数,fromIndex + len = a,a<=0,则从第一位元素插起来;如果a>0&& a
返回值:
元素包含在数组中,返回元素在数组中第一次出现的位置,否则返回-1
3、Array.prototype.lastIndexOf(findVal, fromIndex)-----从后往前查,找到元素第一次出现的位置
findVal---要查找的元素,必需
fromIndex---从指定的索引处开始查找,非必需,默认0
注意:
返回值:
元素包含在数组中,返回元素在数组中第一次出现的位置,否则返回-1
4、Array.prototype.find(fn,thisArg)----返回满足回调函数条件的第一个元素,否则返回undefined
入参:
fn----提供条件的函数,必需
thisArg----指定fn的作用域,非必需
返回值:返回满足条件的第一个元素,否则返回undefined
5、Array.prototype.findIndex(fn,thisArg)----返回满足回调函数条件的第一个元素的索引,否则返回-1
入参:
fn----提供条件的函数,必需
thisArg----指定fn的作用域,非必需
返回值:返回满足条件的第一个元素的索引,否则返回-1
6、Array.prototype.map(fn(val, index, arr){}, thisArg)----返回新数组,数组里面的元素是调用fn后返回的值
入参:
fn----处理函数
thisArg----指定fn的作用域,非必需
返回值:返回新的数组,数组里面返回的元素是调用fn后的返回值
7、Array.prototype.filter(fn(val, index, arr){}, thisArg)----返回新数组,数组里面的元素是满足fn里面设置的条件的arr里面的值
入参:
fn----提供条件的函数
thisArg----指定fn的作用域,非必需
返回值:返回新数组,数组里面的元素是满足fn里面设置的条件的arr的值
8、Array.prototype.filter(fn(val, index, arr){}, thisArg)----返回新数组,数组里面的元素是满足fn里面设置的条件的arr里面的值
入参:
fn----提供条件的函数
thisArg----指定fn的作用域,非必需
返回值:返回新数组,数组里面的元素是满足fn里面设置的条件的arr的值
9、Array.prototype.forEach(fn(val, index, arr){}, thisArg)----对数组的每一个元素都调用fn方法,返回undefined
入参:
fn----对每一个元素调用的函数,必需
thisArg----指定fn的作用域,非必需
返回值:返回undefined
10、Array.prototype.every(fn(val, index, arr){}, thisArg)----对数组的元素调用fn方法,如果每次调用都返回true,则返回true;否则有一个返回false,就直接返回false
入参:
fn----对每一个元素调用的函数,必需
thisArg----指定fn的作用域,非必需
返回值:根据fn函数,测试数组每一个元素是否满足条件,如果都满足则返回true;否则有一个返回false,就直接返回false
注意:如果arr是一个[],则直接返回true
11、Array.prototype.some(fn(val, index, arr){}, thisArg)----对数组的元素调用fn方法,如果遇到满足条件的元素时,则返回true;如果元素都不满足条件,就返回false
入参:
fn----数组元素调用的函数,必需
thisArg----指定fn的作用域,非必需
返回值:对数组的元素调用fn方法,如果遇到满足条件的元素时,则返回true;如果元素都不满足条件,就返回false
注意:如果arr是一个[],则直接返回false
12、Array.prototype.reduce(fn(accumulator,item, index, arr){},initVal)----对数组的元素从左到右调用fn,并将结果汇总为一个返回值
入参:
fn----数组元素调用的函数,必需;accumulator汇总值的变量
initVal----给accumulator的初始化的值,非必需
返回值:对数组的元素从左到右调用fn,将结果汇总返回
注意:
如果arr是一个[],并且没有提供initVal,则抛错
如果arr是[],有提供initVal,则返回initVal的值
如果arr不是[],并且没有提供initVal,则arr的第一个元素的值作为accumulator的初始值,并从arr的第二个元素开始处理
13、Array.prototype.reduceRight(fn(accumulator,item, index, arr){},initVal)----对数组的元素从右到左调用fn,并将结果汇总为一个返回值
入参:
fn----数组元素调用的函数,必需;accumulator汇总值的变量
initVal----给accumulator的初始化的值,非必需
返回值:对数组的元素从右到左调用fn,将结果汇总返回
注意:
如果arr是一个[],并且没有提供initVal,则抛错
如果arr是[],有提供initVal,则返回initVal的值
如果arr不是[],并且没有提供initVal,则arr的第一个元素的值作为accumulator的初始值,并从arr.length - 2位置的元素开始处理
参考文章:
MDN上关于array的方法polyfill:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array