高阶函数 filter/map/reduce
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>高阶函数</title> </head> <body> <script> // const nums = [11, 222,444,55,66,23,90] // 1、需求:取出所有小于100的值 //2、 需求:取出的小于100的值乘以2 // 3、 需求:上面的值相加 //之前的编程方法 //1、需求:取出所有小于100的值 //let newNums = [] //for(let i of nums){ // if(i < 100){ // newNums.push(i) // } //} //console.log(newNums); ////2、需求:取出的小于100的值乘以2 //let new2Nums = [] //for(let i of newNums){ // new2Nums.push(i * 2) //} //console.log(new2Nums); ////3、需求:上面的值相加 //let total = 0 //for(let i of new2Nums){ // total += i //} //console.log(total); //高阶函数 filter/map/reduce //1、filter里面的参数是一个函数,参数函数返回一个Boolean值,如果是true,则加入新数组,false则不加人 let newNums = nums.filter(function (n) { return n <100 }) console.log(newNums); //map() let new2Nums = newNums.map(function (n) { return n * 2 }) console.log(new2Nums); //reduce(函数参数(前一个值,值),参数2),汇总函数 let total = new2Nums.reduce(function (preValue,n) { return preValue + n },0) console.log(total); //要掌握的,阅读性强 let total2 = nums.filter(function (n) { return n < 100 }).map(function (n) { return n * 2 }).reduce(function (preValue,n) { return preValue + n },0) console.log(total2); //箭头函数 let total3 = nums.filter(n => n < 100).map(n => n * 2).reduce((preValue,n) => preValue + n) console.log(total3); </script> </body> </html>