Javascript 如何使用ramda.js计算对象数组中路径的出现次数?

Javascript 如何使用ramda.js计算对象数组中路径的出现次数?,javascript,ramda.js,Javascript,Ramda.js,我试图使用ramda.js来计算对象数组中键值对的出现次数,例如: var array = [ {a: {b: 'a'}}, {a: {b: 'a'}}, {a: {b: 'X'}}, {a: 'a'} ] 如果我想计算ramda.js中{a:{b:'a'}}在数组中出现的次数,我会怎么做?你可能不喜欢它,无点函数 R.compose(R.length, R.filter(R.compose( R.equals('a'), R.path(['a', 'b']))))(array

我试图使用
ramda.js
来计算对象数组中键值对的出现次数,例如:

var array = [
  {a: {b: 'a'}},
  {a: {b: 'a'}},
  {a: {b: 'X'}},
  {a: 'a'}
]

如果我想计算
ramda.js
{a:{b:'a'}}
数组中出现的次数,我会怎么做?

你可能不喜欢它,无点函数

R.compose(R.length, R.filter(R.compose( R.equals('a'), R.path(['a', 'b']))))(array)
更新刚刚从斯科特·克里斯托弗的评论中了解到

R.compose(R.equals(val),R.Path(p1,p2))==R.pathEq([p1,p2],val)

功能可以缩短为

R.compose(R.length, R.filter(R.pathEq(['a', 'b'], 'a')))(array)

考虑以下步骤:[1]
R.pathEq
检查数组元素是否匹配[2]
R.map
检查数组的每个元素,将其转换为
true
false
[3]
Number
可以用作从
true
转换为
1
false
0
[4]
R.sum
汇总数组中的所有
1
请告诉我您是否需要更多帮助,我可以提供完整的解决方案。谢谢,我认为这是一个很好的方法,因为它非常简洁:-)