方法find,findeIndex,map,filfter,reduce,some,every总结
1:find方法
作用:根据条件找到首次符合这个条件的值,
回调参数:1,key值 2,index值
返回值:返回符合条件的值,只有一个,都不符合条件,返回undefined
// 代码示例 let arr = [10,2,1,2,3,4,5,6,6,7,8]; let arrValue = arr.find(item => item < 0);// 返回值为undefined let arrValue1 = arr.find(item => item > 0);// 返回值为10
2:findIndex方法
作用:根据条件找到首次符合这个条件的值的下标,
回调参数:1,key值 2,index值
返回值:返回符合条件的值,只有一个,都不符合条件,返回undefined
// 代码示例 let arr = [10,2,1,2,3,4,5,6,6,7,8]; let index = arr.findIndex(item => item < 0);// 返回值为-1; let index1 = arr.findIndex(item => item > 0);// 返回值为0;
3:map方法
作用:遍历数组,返回一个新数组,
回调参数:1,key值 2,index值 不影响原数组
返回值:是一个新的数组,数组的每一项,回调函数的返回值
// 代码示例 let arr = [1,2,3]; let newArr = arr.map(function (item){ return item + 1; }); // 返回新数组为[2,3,4];
4:filter方法
作用:通过条件筛选并返回复合条件的职,
回调参数:1,key值 2,index值 不影响原数组
返回值:返回值是一个新数组,回调函数返回值为true,就把循环的这一项放在新数组中,如果为fasle,就忽略。
let arr = [1,2,3,43,4,5,6,7,8]; let newArr = arr.filter(function (item){ return item < 5 // 过滤的条件 }); // 返回新数组为 [1,2,3,4]
5:reduce方法
作用:计算数组中所有的key计算结果,
回调参数:1. 没有初始值,是数组的第一项,2. 没有初始值,是数组的第二项
运行过程
没有初始值,
第一调用回调函数,接收的是数组的第一项和第二项。
第二次调用回调函数,接收的第一个参数是调用上一个回调函数(第一个)的返回值,第二参数是数组的第三项;
第三次调用函数,接收的第一个参数是调用上一个回调函数(第二次)的返回值,第二参数是数组的第四项。。。。。
有初始值
第一次调用回调函数,回调函数的第一参数是传入的初始值,第二分参数是数组的第一项
第二次调用回调函数,接收的第一个参数是调用上一个回调函数(第一个)的返回值,第二参数是数组的第三项;
第三次调用函数,接收的第一个参数是调用上一个回调函数(第二次)的返回值,第二参数是数组的第四项
//示例代码 let arr = [1,2,3,4,5]; // 数组中每一项相加得出一个总和 // 没有初始值 arr.reduce(function (item1,item2){ return item1+item2 });//返回值为数组中所有的值相加之和,55 // 初始值是100 arr.reduce(function (item1,item2){ return item1+item2 },100);//返回值为初始值数组中所有的值相加之和,155
6:some&every方法
some作用:给定一个条件,只要数组中有一项满足条件,就返回true,都不满足,返回false
every作用:给定一个条件,数组必须全部满足条件,就返回true,有一个都不满足,返回false
回调参数:1,key值 2,index值
//示例代码 let arr = [1,2,3,4,5,56,7]; // 只要数组中有一个大于5就为true let bl = arr.some(function (item){ return item > 5 })// 返回值为true // 数组中所有的值大于0就为true let bl = arr.every(function (item){ return item > 0 })// 返回值为true