【前端案例】25 - 高阶函数 [filter + map +
2021-01-15 本文已影响0人
itlu
filter 函数
-
filter
中的回调函数必须返回一个Boolean
值 当返回true
时函数内部会自动将这次回调函数的参数作为返回值返回。加入到新的数组中。
map 函数
- 方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。
reduce 函数
- 对数组中所有的值进行汇总的。
let nums = [112, 233, 3, 422, 52, 67, 85, 91];
// 需求 1 将数组中小于 100 的元素取出
/**
* filter 中的回调函数必须返回一个Boolean值 当返回 true时函数内部会自动将这次回调的 n
* 加入到新的数组中
*
* map 函数
*
* reduce 函数 对数组中所有的值进行汇总的
*/
let newNums = nums.filter(n => n < 100).map(n => n * 2); // return 当只返回一行代码的时候是可以省略的
console.log(newNums); // [6, 104, 134, 170, 182]
// 需求 2 将所有小于 100 的数字进行转换 全部乘以 2
// 需求 3 将数组中所有的数字进行相加求和
let sum = newNums.reduce((previousValue, n) => {
// 1. 第一次 preValue
// 2. 第二次 preValue
return previousValue + n;
}, 0);
console.log(sum); // 596
/**************************************************************************************/
// 一行代码搞定
/**
* 参数只有一个的时候小括号可省略 函数体中只有 return 一行代码的时候可以省略大括号
* @type {number}
*/
let total = nums.filter(n => n < 100).map(n => n * 2).reduce((previousValue, n) => previousValue + n);
console.log(total); // 596