js高阶函数——filter/reduce/map的作用及使用
1、filter——回调函数(有一个要求,必须返回一个布尔值)
当返回true时,函数内部会自动将这次回调的n加入到新的数组中 当返回的是false时,函数内部会过滤掉这次的n
//定义一个数组方便后续的使用 const nums = [10,20,30,40,50,60,253,458,112];
//取出小于100的数 let newNums = nums.filter(function(n){ return n<100 }); //结果是[10,20,30,40,50,60]
2、map——映射函数
对n进行处理,返回处理后的n加入到新数组中
//将小于100的数乘以2 let new2Nums = newNums.map(function(n){ return n*2 }); console.log(new2Nums); //返回结果[20, 40, 60, 80, 100, 120]
3、reduce——汇总函数
传的值为两个,一个是上一次汇总的值,一个是要加上的新值n
//对上面得到的新数组中所有内容进行汇总 let new3Nums = new2Nums.reduce(function(prevalue,n){ return prevalue + n },0/*初始化值*/); console.log(new3Nums); //prevalue 是上一次汇总的的值 //返回的结果是 420
三个函数的联合使用
如果想要实现将满足要求的元素直接存储到一个新的数组中可以将三个函数联合使用得到最终结果。
let newNums = nums.filter(function(n){ return n<100 }).map(function(n){ return n*2 }).reduce(function(prevalue,n){ return prevalue + n },0); console.log(newNums); //最终结果420
这三个高阶函数是我们在日常使用中经常会用到的函数,合理的使用可以简化我们的代码,方便我们的操作。