gpt4 book ai didi

javascript - 组合函数添加新参数

转载 作者:行者123 更新时间:2023-11-29 10:26:14 26 4
gpt4 key购买 nike

我目前正在学习 JavaScript,但由于向我的函数添加了一个应该添加两个数字的参数而陷入困境。我对编程并不陌生。在 Java 和 C# 中做了很多,但是 Javascript 使我对范围、组合和柯里化(Currying)感到疯狂……所以这是我的问题:

const compose = (f, g) => (a) => f(g(a));
const add1 = (num) => num + 1;
const add5 = (num) => num + 5;
compose(add1, add5)(10) // 16

上面的代码有效!但我希望 +1 和 +5 数字是可变的,这样我就可以这样:

// Something linke this 
const compose = (f, g) => (a,b) => f(g(a,b));
const add1 = (num, num2) => num + num2;
const add5 = (num, num2) => num + num2;
compose(add1, add5)(10, 4) // Those numbers should be the Parameter input for add1 and add5 (num, num2)

最佳答案

可能是这样的:

    const addN = (n) => num => num + n
const compose = (f,g) => a => f(g(a));
const result = compose(addN(10),addN(4))(1);
console.log(result);

addN 创建加法器函数,在本例中为 add10add4add1add5 返回一个值,addN 返回一个类似的函数 add1add5 除了它没有硬编码为 +1 或 +5;它是 + 当您调用 addN 时传入的任何内容。

console.log(addN(6)(10)); //16

addN(6) 创建一个“add6”函数,然后我们用 10 调用该“add6”函数以获得 16 的输出

关于javascript - 组合函数添加新参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58590416/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com