gpt4 book ai didi

javascript - Ramda compose 传递多个参数

转载 作者:行者123 更新时间:2023-11-29 17:36:34 25 4
gpt4 key购买 nike

我们如何将多个输入传递给组合内部的函数?

const scaleLinear = R.curry((domain,range,t)=>{
let [a,b] = domain,
[c,d] = range;
return (1 - (t-a)/(b-a))*c + (t-a)(b-a)*d;

//getDomain: arr1 -> [xmin,xmax]
//getRange: arr2 -> [ymin,ymax]
const scale = R.compose(scaleLinear, getDomain, getRange);

显然上面的方法行不通,但有什么替代方法可以让我最终传入 2 条数据(arr1、arr2),并得到适当的比例?

最佳答案

在 R.compose 中,只有最右边(底部)函数的元数可以大于 1。它接收传递给组合函数的参数,返回单个值,并将它传递给它左边的函数,并且等等。

在您的情况下,您想要转换 scaleLinear 的参数,而不是将多个函数应用于一个值。您可以通过应用 R.useWith 来转换函数的参数,以及一组变压器:

const scale = R.useWith(scaleLinear, [getDomain, getRange, R.identity])

现在你可以像这样使用scale:

scale(arr1, arr2, 10)

关于javascript - Ramda compose 传递多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55881237/

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