首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ramda.js中的功能组合

ramda.js中的功能组合
EN

Stack Overflow用户
提问于 2016-05-04 08:57:33
回答 1查看 129关注 0票数 0

鉴于以下情况:

代码语言:javascript
复制
var xs = [{a: 1}, {a: 2}, {a: 3}];
R.findIndex(R.propEq('a', 2))(xs); //=> 1
R.findIndex(R.propEq('a', 4))(xs); //=> -1

如何创建不立即绑定propEq的新函数。我想curry可能会这么做。

代码语言:javascript
复制
var myfn = R.findIndex(R.propEq);
myfn('a', '2')(xs); // => 1

我试过咖喱,但没有完全正确。

代码语言:javascript
复制
var myfn = R.findIndex(R.curry(R.propEq)); // functional programming is rusty - this is not currect
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-04 11:07:43

嗯,我的第一个想法是,在这里简单地明确是最好的:

代码语言:javascript
复制
const findByProp = curry((key, val, xs) => findIndex(propEq(key, val), xs));

const xs = [{a: 1, b: 10}, {a: 2, b: 20}, {a: 3, b: 30}];

findByProp('a', 1, xs);  //=> 0
findByProp('a', 2)(xs);  //=> 1
findByProp('b')(30)(xs); //=> 2

使用useWithconverge或庇护所的组合器可能有一些方法可以使这一点不受影响,但它们最终可能不会像这样可读性那么强。

您可以在Ramda REPL上看到这一点。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37022965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档