高阶函数
1、filter
遍历num,传入函数中,如果满足n<20,则是返回true,那么n就会加入到newNums中
const num = [3,6,3,4,5,6,23,423,5,6,78]
let newNums = num.filter(function (n) {
return n < 20
})
console.log(newNums)
2、map
遍历数组,把传入的n乘以2再传出给新的数组
let newNums2 = newNums.map(function (n) {
return n * 2
})
console.log(newNums2);
3、reduce
preValue的值是代表上一次传进去的值,0传入的值赋予给preValue,每次传出的值在下一次遍历开始之前赋予给preValue。
movies = [3,4,5,6,4,7,233,4,5,3,3,22,3,4,556,33]
let total = movies.reduce(function (preValue,n){
return preValue + n;
},0)
console.log('total = ' + total);
把filter、map和reduce结合在一起满足条件,取出小于100的值并且把值乘以二之后相加
total = movies.filter(function (n){
return n < 100
}).map(function (n){
return n * 2
}).reduce(function (preValue,n){
return preValue + n
},0)
console.log('total = ' + total);
可以使用更加简便的方法去书写
total = num.filter(n => n < 100).map(n => n * 2).reduce((preV,n) => preV + n)