• 512 高阶函数 filter、map、reduce


    编程范式: 命令式编程、声明式编程

    编程范式: 面向对象编程(第一公民:对象),函数式编程(第一公民:函数)

    filter、map、reduce

    filter中的回调函数有一个要求: 必须返回一个boolean值

    true: 当返回true时, 函数内部会自动将这次回调的n加入到新的数组中

    false: 当返回false时, 函数内部会过滤掉这次的n

    const nums = [10, 20, 111, 222, 444, 40, 50]
    let total = nums.filter(n => n < 100).map(n => n * 2).reduce((pre, n) => pre + n);
    // console.log(total);
    
    let total = nums.filter(function (n) {
      return n < 100
    }).map(function (n) {
      return n * 2
    }).reduce(function (prevValue, n) {
      return prevValue + n
    }, 0)
    console.log(total);
    
    // 1.filter函数的使用
    // // 10, 20, 40, 50
    // let newNums = nums.filter(function (n) {
    //   return n < 100
    // })
    // // console.log(newNums);
    //
    // // 2.map函数的使用
    // // 20, 40, 80, 100
    // let new2Nums = newNums.map(function (n) { // 20
    //   return n * 2
    // })
    // console.log(new2Nums);
    //
    // // 3.reduce函数的使用
    // // reduce作用对数组中所有的内容进行汇总
    // let total = new2Nums.reduce(function (preValue, n) {
    //   return preValue + n
    // }, 0)
    // console.log(total);
    
    // 第一次: preValue 0 n 20
    // 第二次: preValue 20 n 40
    // 第二次: preValue 60 n 80
    // 第二次: preValue 140 n 100
    // 240
    
    // // 1.需求: 取出所有小于100的数字
    // let newNums = []
    // for (let n of nums) {
    //   if (n < 100) {
    //     newNums.push(n)
    //   }
    // }
    //
    // // 2.需求:将所有小于100的数字进行转化: 全部*2
    // let new2Nums = []
    // for (let n of newNums) {
    //   new2Nums.push(n * 2)
    // }
    //
    // console.log(new2Nums);
    //
    //
    // // 3.需求:将所有new2Nums数字相加,得到最终的记过
    // let total = 0
    // for (let n of new2Nums) {
    //   total += n
    // }
    //
    // console.log(total);
    
  • 相关阅读:
    php 5.3新特性
    php:// — 访问各个输入/输出流(I/O streams)
    php 二维数组排序
    js 面向对象式编程
    jQuery 源码学习笔记
    c++ 指针(二)
    c++ 指针(一)
    visual studio 2012 的制作ActiveX、打包和发布
    用linqPad帮助你快速学习LINQ
    Caliburn.Micro学习笔记(五)----协同IResult
  • 原文地址:https://www.cnblogs.com/jianjie/p/13535596.html
Copyright © 2020-2023  润新知