Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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?

like image 357
Leon Gaban Avatar asked Dec 27 '16 20:12

Leon Gaban


1 Answers

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.

like image 137
Scott Sauyet Avatar answered Sep 18 '22 02:09

Scott Sauyet