[js] 函数柯里化

news/2024/11/30 0:27:34/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

面试题:实现一个add方法,使计算结果能够满足如下预期:
add(1)(2)(3) = 6;
add(1, 2, 3)(4) = 10;
add(1)(2)(3)(4)(5) = 15;

javascript">// 保存不定长参数
let nums = [];
function add(...args) { // 往数组中插入不定长参数nums.push(...args)// 判断参数的个数if(nums.length >= 5) {// 长度大于等于5时,返回累加结果// 注意:就算大于五个参数,也只会返回前五个参数的累加结果// 这里使用了reduce方法,对数组中的每个元素进行累加// slice方法用于截取数组中的前五个元素const res = nums.slice(0, 5).reduce((prev, next) => prev + next, 0);return res;} else {// 2.2 长度没到5 返回函数接收剩余参数return add;}}

或者

javascript">function add() {// 第一次执行时,定义一个数组专门用来存储所有的参数var _args = Array.prototype.slice.call(arguments);// 在内部声明一个函数,利用闭包的特性保存_args并收集所有的参数值var _adder = function() {_args.push(...arguments);return _adder;};// 利用toString隐式转换的特性,当最后执行时隐式转换,并计算最终的值返回_adder.toString = function () {return _args.reduce(function (a, b) {return a + b;});}return _adder;
}

参考:

JavaScript函数柯里化 - Web前端工程师面试题讲解
JS详解-函数柯里化
详解JS函数柯里化


http://www.ppmy.cn/news/1551042.html

相关文章

Hive 函数(实例操作版2)

数据脱敏函数 -- 演示数据脱敏函数 -- mask_hash: 返回指定字符串的hash编码 select mask_hash(binzi);-- 拓展 --将查询回的数据,大写字母转换为X,小写字母转换为x,数字转换为n。 select mask("abc123DEF"); -- xxxnnnXXX--自定…

Epipolar-Free 3D Gaussian Splatting for Generalizable Novel View Synthesis 论文解读

目录 一、概述 二、相关工作 1、单场景3DGS 2、跨场景生成3DGS 3、几何方法解决3D任务 三、eFreeSplat 1、预训练跨视角模块 2、无外极线跨视角交互感知模块 3、迭代跨视角高斯对齐 4、高斯参数预测 一、概述 该论文设计了一种不依赖于极线约束的情况实现可推广的新视…

力扣第 72 题 编辑距离

一、题目描述 给你两个单词 word1 和 word2,请返回将 word1 转换为 word2 所使用的最少操作数。 你可以对一个单词进行如下三种操作: 插入一个字符;删除一个字符;替换一个字符。 二、解题思路 1. 问题分析 这是一个最优子结构…

Chrome://常用的内部页面地址

Chrome浏览器提供了一系列特殊的内部页面来用于开发和调试,可以通过在地址栏中输入以chrome://开头的协议来访问。 这些页面用于各种高级设置、实验性功能、诊断信息和浏览器工具等。 一些常用的内部页面: 协议用途chrome://settings/打开Chrome的设置…

量化交易系统开发-实时行情自动化交易-8.1.TradingView平台

19年创业做过一年的量化交易但没有成功,作为交易系统的开发人员积累了一些经验,最近想重新研究交易系统,一边整理一边写出来一些思考供大家参考,也希望跟做量化的朋友有更多的交流和合作。 接下来会对于TradingView平台介绍。 T…

C# 常量

文章目录 前言一、整数常量(一)合法与非法实例对比(二)不同进制及类型示例 二、浮点常量三、字符常量四、字符串常量五、定义常量 前言 在 C# 编程的世界里,常量是一类特殊的数据元素,它们如同程序中的 “定…

SpringBoot连接测试InfluxDB时序数据库

1&#xff09;创建一个Springboot项目&#xff0c;在pom.xml引入influxDB相关的包 <!-- influxdb --><dependency><groupId>org.jetbrains.kotlin</groupId><artifactId>kotlin-stdlib</artifactId><version>1.8.10</version>…

【ANC系统】主动噪声控制系统结构分类

1. 根据是否获取参考信号划分 前馈 ANC 系统&#xff08;Feedforward ANC&#xff09; 原理&#xff1a;前馈 ANC 系统的基本工作原理是利用参考信号来生成反噪声。参考信号通常是由传感器检测到的“初级噪声”信号&#xff0c;系统在噪声发生之前就进行干预。参考信号通常是直…