zoukankan      html  css  js  c++  java
  • 函数式编程 -- 高阶函数

    高阶函数

    • 高阶函数(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]
    
  • 相关阅读:
    jQuery之元素操作及事件绑定
    JS中常遇到的浏览器兼容问题和解决方法
    九九乘法表
    全选复习
    css基本知识
    js数组
    Spark常见错误问题汇总
    被问懵逼的Kafka面试题
    被问懵逼的数仓面试
    Flink模拟项目: 订单支付实时监控
  • 原文地址:https://www.cnblogs.com/MissSage/p/14875332.html
Copyright © 2011-2022 走看看