JavaScript前端开发那些事儿JavaScript

【前端案例】25 - 高阶函数 [filter + map +

2021-01-15  本文已影响0人  itlu

filter 函数

  1. filter 中的回调函数必须返回一个Boolean值 当返回 true 时函数内部会自动将这次回调函数的参数作为返回值返回。加入到新的数组中。

map 函数

  1. 方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。

reduce 函数

  1. 对数组中所有的值进行汇总的。
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
上一篇下一篇

猜你喜欢

热点阅读