gpt4 book ai didi

javascript - 当父函数接收不同参数时如何实现管道

转载 作者:行者123 更新时间:2023-12-01 04:00:04 26 4
gpt4 key购买 nike

我是函数式编程新手,有一个关于管道的问题。

假设我有以下功能:

const modifyArr = R.curry((i, newValue, arr) => 
Object.assign([], arr, {[i]: newValue}))

此函数更改特定索引上的数组值。

现在,我想使用此函数两次(使用管道)以实现数组中两个元素之间的交换。

我不知道怎么写。这就是我得到的:

const swap = (arr, a, b) => 
R.pipe(modifyArr(b, arr[a], modifyArr(a, arr[b])))

请注意,modifyArr 的柯里化(Currying)版本(在接收两个参数后)需要一个数组,但我将 3 个参数传递给交换函数。

当我的父函数接收与管道中第一个函数不同的参数时,如何使用管道?

谢谢。

最佳答案

鉴于您的函数是柯里化(Currying)的,您可以在进行管道传输之前部分应用以前的参数:

const swap = (arr, a, b) => R.pipe(modifyArr(a, arr[b]), modifyArr(b, arr[a]))(arr);

关于javascript - 当父函数接收不同参数时如何实现管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42260408/

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