ramda.js - 如何用 R.compose 重写它

标签 ramda.js

var take = R.curry(function take(count, o) {
    return R.pick(R.take(count, R.keys(o)), o);
});

此函数按照它们出现的顺序从对象中获取 count 个键。我用它来限制分组的数据集。

我知道存在占位符参数,例如 R.__,但我无法理解这种特殊情况。

最佳答案

这一切都归功于 R.converge ,但我不建议在这种情况下使用无积分。

//  take :: Number -> Object -> Object
var take = R.curryN(2,
                    R.converge(R.pick,
                               R.converge(R.take,
                                          R.nthArg(0),
                                          R.pipe(R.nthArg(1),
                                                 R.keys)),
                               R.nthArg(1)));

需要注意的一点是,由于 R.keys 返回的列表的顺序未定义,因此该函数的行为未定义。

关于ramda.js - 如何用 R.compose 重写它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29617142/

相关文章:

Javascript删除合并某些属性的对象列表中的重复项

javascript - Ramda 可以有 isString 吗?

javascript - 如何访问 Ramda 中的构造函数 'this'?

ramda.js - 在 R.pipe 中连续两次调用 R.reduce 之间累加器未重置

javascript - 获得另一个属性指向的属性的最干净的 fp 方法是什么

javascript - 使用 ramda 谓词相互过滤两个列表

typescript - Ramda 过滤器和 prop 在使用 typescript 时出现错误

javascript - 使用 Ramda 处理异步编程

javascript - 我如何使用 ramda 编写该函数?

javascript - 在参数顺序错误的地方自由点