javascript 对象的额外一些属性并将它们传递给函数

Extra some properties from a javascript object and pass those to a function

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

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

例如

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, making your function accept a the parameters in a single array, and using 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.

中看到这一切