• 函数式编程 -- 高阶函数


    高阶函数

    • 高阶函数(Hiner-order function),可以把函数作为参数传递给另一个函数,也可以把函数作为另一个函数的返回结果
    // 函数作为参数
    function forEach(array,fn){
        for(let i = 0; i < array.length; i++){
          fn(array[i])
        }
    }
    // 测试
    let arr=[1, 3, 4, 5, 7]
    forEach(arr, function(item){
      console.log(item)
    })
    
    // 函数作为返回值,这里once使fn只执行一次
    function once(fn){
        let done = false
        return function(){
          if(!done){
              done = true
              return fn.apply(this, arguments)
          }
        }
    }
    // 测试
    let pay=once(function(money){
        console.log("支付:" + money + "RMB"
    })
    
    pay(5)
    pay(5)
    
    // 输出
    // 支付:5RMB
    

    常用高阶函数

    • forEach

    • map

    • filter

    • every

    • some

    • find/findIndex

    • reduce

    • sort
      ...

    • 都些函数都有一个共同点 -- 需要接收一个函数作用参数

    • 下面模拟一下map方法

    // map
    const map = (array,fn)=>{
        let results = []
        for(let value of array){
            results.push(fn(value))
        }
        return results
    }
    
    // 测试
    let arr = [1, 3, 4 ,6]
    arr = map(arr,v => v*v)
    console.log(arr)
    
    // 输出
    // [1, 9, 16, 36]
    
  • 相关阅读:
    单位根反演学习笔记
    省选模拟测试17
    省选模拟测试16
    省选模拟测试15
    省选模拟测试14
    省选模拟测试13
    P4491 [HAOI2018]染色
    省选模拟测试12
    P4389 付公主的背包
    洛谷P3403
  • 原文地址:https://www.cnblogs.com/MissSage/p/14875332.html
Copyright © 2020-2023  润新知