gpt4 book ai didi

javascript - 从 javascript 对象中额外获取一些属性并将其传递给函数

转载 作者:行者123 更新时间:2023-11-28 18:01:09 24 4
gpt4 key购买 nike

我正在寻找一个函数或一组函数来通过 ramda 执行工作。这是问题:-

我有一个对象,我想通过“管道”函数传递它,从该对象中提取一些参数并将这些参数的值传递给函数。

例如

import {pipe} from 'ramda'
const obj = {
a: 1,
b: 2,
c: 3,
d: 4
}

const sum = (val1, val2) => val1 + val2

pipe(<extract a,b from obj> and pass it to sum function) ??

非常感谢任何形式的帮助。

谢谢

最佳答案

尝试使用 pipe 来实现此目的的麻烦在于,它(如 compose)仅将单个参数传递给除第一个调用的函数之外的任何内容。您可以使用apply来解决这个问题,使您的函数接受单个数组中的参数,并使用 props提取该数组:

pipe(props(['a', 'b']), apply(sum))(obj); //=> 3

另一种方法是使用 Ramda 特有的 converge功能:

converge(sum, [prop('a'), prop('b')])(obj) //=> 3

但也许比这更好的是更标准的 lift一:

lift(sum)(prop('a'), prop('b'))(obj); //=> 3

您可以在 Ramda REPL 中看到这一切

关于javascript - 从 javascript 对象中额外获取一些属性并将其传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43531472/

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