js高阶函数filter、map、reduce

 1 // 高阶函数 filter/map/reduce 2  3 // filter中的回调函数有一个要求:必须返回一个boolean值, 4 // 当返回true时,函数内部会自动将这次回调的 n 加入到新的数组中 5 // 当返回false时,函数内部会自动过滤掉这次的 n 6 const nums=[10,20,60,94,348,57,24,674,645,44,4] 7 let newNums = nums.filter(function (n){ 8 return n<30 9 })10 console.log("filter",newNums);11 12 //map13 let newNums2 = newNums.map(function (n) {14 return n * 215 })16 console.log("map",newNums2);17 18 // reduce作用,对数组中的所有内容进行汇总 m赋值给prevalue,每次preValue为上次的preValue+n的值19 let m=0;20 let total = newNums2.reduce(function (preValue,n) {21 return preValue + n22 },m)23 //newNums2=[20,40,48,8]有四个值,那就循环四次24 // 第一次 :preValue=0 n=2025 // 第二次 :preValue=20 n=4026 // 第三次 :preValue=60 n=4827 // 第四次 :preValue=108 n=828 // 第五次 :preValue=11629 // 最后返回116赋值给 total30 console.log(total);31 console.log("*********高阶写法***************");32 33 let total2 = nums.filter(function (n) {34 return n<3035 }).map(function (n) {36 return n*237 }).reduce(function (preValue,n) {38 return preValue + n39 },0)40 41 console.log(total2)42 43 console.log("更简单写法")44 let total3 = nums.filter(n => n < 30).map(n => n * 2).reduce((pre, n) => pre + n);45 console.log(total3)

 

相关文章