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

【前端手撕】函数柯里化curry

柯里化是把一个接受多个参数的函数,转换成接受单一参数(或部分参数)并返回一个新函数,直到收到全部所需参数后才执行原函数的过程。

例如:

function add(a, b, c) { return a + b + c } const curriedAdd = curry(add); curriedAdd(1)(2)(3) // 6 curriedAdd(1, 2)(3) // 6 curriedAdd(1)(2, 3) // 6

本质是参数收集,当收集到的参数个数达到原函数定义的形参个数(fn.length)时,就调用原函数。

代码

const curry = (fn, ...args) => { if (args.length >= fn.length) { return fn(...args) } else { return (...rest) => { return curry(fn, ...args, ...rest) } } }

注意:这里的fn.length是函数定义时声明的形参个数(不包括剩余参数)。一般这个实现是针对常规固定参数函数的。

http://www.jsqmd.com/news/1034445/

相关文章:

  • 腾讯元宝公式复制到 word 频繁乱码?AI 导出鸭一站式搞定多场景文档无损转换
  • 2026年AI呼叫系统推荐指南:五款智能电话系统多维度深度测评 - 品牌2026
  • 湖南学贯教育,成人专升本机构中的性价比之选,靠谱吗 - myqiye
  • 10分钟搞定黑苹果:OpCore Simplify智能配置工具终极指南
  • 混元3解析:295B总参与21B激活的稀疏大模型架构
  • MediaPipe终极指南:如何用跨平台AI框架构建实时智能应用
  • 【ACM出版,录用率高,EI检索稳定 | 征稿范围广 | 华东交通大学、江西省人工智能学会、先进网络计算江西省重点实验室支持举办】2026年亚太人工智能与机器学习国际学术会议(APAM 2026)
  • 内容创作必备实用工具合集,音视频、乐谱、字幕处理一站式搞定
  • AI 辅助后端性能优化:从经验调参到智能诊断,系统瓶颈的自动定位
  • 大数据相关专业哪个最适合普通家庭孩子
  • 老旧设备电视直播难题的终极解决方案:MyTV-Android深度评测
  • 【CLI】CLI vs MCP: A Simple Guide
  • 第七章:GPU Scheduler 分析:7.6 调度循环与流控 — sched_main 核心流程
  • 上海GEO优化贴牌主体爱搜索GEO,重塑AI时代品牌曝光新路径 - 品牌报告
  • Java入门到精通-03 第一个程序——Hello World
  • 创业中心品牌哪家好?博仕德靠谱吗? - myqiye
  • Gemini多模态原生架构:从胶水层到共生训练的技术范式迁移
  • STM32通用GPIO模拟驱动TM1629A数码管的轻量级代码包(含.c/.h文件与Demo)
  • 性能调优与排错:GraphRAG 系统的瓶颈分析与优化实战
  • 鸿蒙数学108篇 第一百零六篇:鸿蒙数学与道统总闭环
  • 2026年南昌K金回收怎么选?5个关键考察点与专业机构推荐,看这篇就够了 - 本地品牌推荐
  • 2026 安徽六安全区域彩钢瓦修缮公司甄选指南|4 家正规企业深度对比 + 权威 TOP 推荐 + 完整避坑手册 - 本地便民网
  • 数据科学面试避坑指南:9个暴露业务脱节的真实错误
  • Linux Pulseaudio深度解析之pa_stream_set_read_callback调用流程与实战(三十六)
  • 腾讯元宝代码如何导出使用?AI导出鸭实测:告别公式乱码
  • 幕墙精致钢精品定制哪家好?天津市洪伟钢管靠谱吗 - myqiye
  • 成都奔驰维修保养避坑指南:资深玩家教你选对专修店,少花冤枉钱
  • AMD Ryzen SDT调试工具终极指南:解锁处理器隐藏性能的专家级方案
  • 智能学习助手:AutoUnipus如何让网课学习效率提升85%
  • 鸿蒙数学108篇 第一百零八篇:万数归一终极总结 + 鸿蒙数学传承总纲