Javascript ramda.js中的函数组合

Javascript ramda.js中的函数组合,javascript,ramda.js,Javascript,Ramda.js,鉴于以下情况: 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的新函数。 我想咖喱可以 var myfn = R.findIndex(R.propEq); myfn('a', '2')(xs); // => 1 我试过咖喱,但我吃的不太对 var m

鉴于以下情况:

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
的新函数。 我想咖喱可以

var myfn = R.findIndex(R.propEq);
myfn('a', '2')(xs); // => 1
我试过咖喱,但我吃的不太对

var myfn = R.findIndex(R.curry(R.propEq)); // functional programming is rusty - this is not currect

嗯,我的第一个想法是,在这里,简单地说清楚是最好的:

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
也许有一些方法可以让这些观点在使用or或SANCATION时免费,但它们最终可能不会像这样可读


你可以在上看到这一点。好吧,我的第一个想法是,在这里简单地说清楚是最好的:

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
也许有一些方法可以让这些观点在使用or或SANCATION时免费,但它们最终可能不会像这样可读

您可以在上看到这一点