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?
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?
2 Answers
Reset to default 18As 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.
Ah it was a simple mistake, I forgot to pass in the exact key from the ticker object.
R.propEq('ticker', ticker.ticker)
This is how I now solve my problem in my app:
const exists = R.find(R.propEq('ticker', this.ticker.ticker));
this.inPortfolio = !!exists(portTickers);
console.log('this.inPortfolio', this.inPortfolio)
// True or false