2020年5月11日
// 函数式编程
// filter/map/reduce
// filter中的回调函数有一个要求:必须返回一个boolean值
//true:当返回true时,函数内部会自动将这次回调的n加入到新的数组中
//false:当返回false时,函数内部会过滤带哦这次的n
const nums = [10,20,111,222,444,40,50];
//1.filter
let newNums = nums.filter(function(n){
return n < 100
});
console.log(newNums);
//2.map
let new2Nums = newNums.map(function(n){
return n * 2
});
console.log(new2Nums);
//3.reduce
//reduce对数组中所有的内容进行汇总
let total = new2Nums.reduce(function(preValue,n){
return preValue + n
},0);
console.log("total = "+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 = "+total2);
let total3 = nums.filter(n => n < 100).map(n => n * 2).reduce((preValue,n) => preValue + n);
console.log("total3 = "+total3);