How to use Ramda to find matching object in Array by key value

Leon Gaban picture Leon Gaban · Dec 27, 2016 · Viewed 14.3k times · Source

Ramda REPL example

var portfolio = [{ticker: "aa"},  {ticker: "bb"}];

var ticker = {ticker:"aa"};

var exist = R.find(R.propEq('ticker', ticker), portfolio)

console.log(exist)

Currently this is giving me undefined, however R.propEq should find the matching object by key ticker in port I thought?

Answer

Scott Sauyet picture Scott Sauyet · Dec 27, 2016

As you say, you can solve it by passing in the key to propEq:

R.find(R.propEq('ticker', 'aa'), port)

Another option is to use the eqProps function, which tests if two objects match for the named key:

R.find(R.eqProps('ticker', ticker), port)

You can see the first or second version in the Ramda REPL.