如何使用Ramda按键值在Array中查找匹配对象

时间:2016-12-27 20:06:44

标签: javascript functional-programming ramda.js

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)

目前这给了我 undefined ,但是R.propEq应该按tickerport的键using Moq; using OtherClass; [TestClass] public class TestClass { [TestMethod] public void TestMethod() { OtherClass other = new OtherClass(); OtherClass.foo(); } } 找到匹配的对象?

2 个答案:

答案 0 :(得分:10)

正如您所说,您可以通过将密钥传递给propEq来解决此问题:

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

另一种选择是使用eqProps函数,该函数测试两个对象是否与命名键匹配:

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

您可以在Ramda REPL中看到 first second 版本。

答案 1 :(得分:0)

啊这是一个简单的错误,我忘了传递自动回报对象中的确切键。

R.propEq('ticker', ticker.ticker)

这就是我现在在我的应用中解决问题的方法:

const exists = R.find(R.propEq('ticker', this.ticker.ticker));
this.inPortfolio = !!exists(portTickers);
console.log('this.inPortfolio', this.inPortfolio)
// True or false