当前位置: 首页 > news >正文

JS一些重要函数

防抖函数

        避免短时间内的函数多次调用影响性能

function debounce(func , wait){let timer;return (...args) => {clearTimeout(timer);timer = setTimeout(() => {return func(args)} , wait)}
}

函数柯里化

        将多参函数以单参的形式传递

function curry(fn){return function curryInner(...args){if(args.length >= fn.length){return fn(...args)    }else{return (...args2)=>{return curryInner(...args , ...args2)}}   }
}

组合与管道

        不同函数的连续调用并求值

        原型

//root
function compose(...funcs){return function(x){return f(g(v(z(...(x)))))}
}

        递归写法

function compose(...funcs){let count = funcs.length - 1;let result;return function fn(x){if (count < 0){return result;}else{result = funcs[count--](x)//先数组,后count--return fn(result);}}
}

        迭代写法

function compose(...funcs){let callback = function(f,g){return function(x){return f(g(x))}}let fn = funcs[0]for (let i = 1;i < funcs.length; i++){fn = callback(fn , funcs[i])}return fn;
}

        reduce写法

function compose(...funcs){return funcs.reduce((a , b) => (x) => a(b(x)))
}

        管道(pipe) -> 反向组合(从左向右读函数)

function compose(...funcs){return funcs.reverse().reduce((a , b) => (x) => a(b(x)))
}

后续会补充,此文章用来辅助记忆

http://www.lryc.cn/news/310523.html

相关文章:

  • 基于视觉识别的自动采摘机器人设计与实现
  • 算法D32 | 贪心算法2 | 122.买卖股票的最佳时机II 55. 跳跃游戏 45.跳跃游戏II
  • 【iOS ARKit】协作 Session 实例
  • 云原生精品资料合集(附下载)
  • JVM 第一部分 JVM两种解释器 类加载过程和类加载器
  • 用Java语言创建的Spring Boot项目中,如何传递数组呢??
  • [笔记] 使用 Java Swing 实现一个简单的窗口
  • 2024.03.03蓝桥云课笔记——排序
  • Vue3和ElementPlus封装table组件
  • 第一篇:参考资料地址
  • wordpress 开源主题
  • 【Linux网络命令系列】ping curl telnet三剑客
  • 于月仙主动与赵本山握手表示欢迎,赵:怎么着要跟我第二次牵手啊?
  • Unity UGUI之Slider基本了解
  • 【Linux】进程间通信之共享内存
  • 文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于条件风险价值的虚拟电厂参与能量及备用市场的双层随机优化》
  • 前端架构: 脚手架通用框架封装之CommonJS和ESM混合开发兼容解决(教程五)
  • 基于主从模式的Reactor的仿muduo网络库
  • Linux服务器搭建超简易跳板机连接阿里云服务器
  • Windows Server 各版本搭建文件服务器实现共享文件(03~19)
  • ARM总结and复习
  • 非功能测试的定义、类型和示例
  • Angular基础---HelloWorld---Day1
  • k8s部署项目常见的问题及解决方案
  • Redis实现乐观锁+秒杀场景demo
  • 阅读笔记 | Transformers in Time Series: A Survey
  • WPF MVVM中List<>和ObservableCollection<>的区别与对比分析
  • python给企微发消息
  • TCP/IP状态迁移
  • C语言实现各类排序算法