Javascript dc.js:如何减少对象元素列表上的计数?

Javascript dc.js:如何减少对象元素列表上的计数?,javascript,dc.js,crossfilter,Javascript,Dc.js,Crossfilter,我有一个物体像: [ { "Project": 1; "key":["a", "b", "c", "d"]}, { "Project": 2; "key":["b", "c", "d"]}, { "Project": 3; "key":["e", "c", "a"]}, { "Project": 4; "key":["b", "a", "e", "f"]} ] 就我所实现的而言,reduceCount只统计单个元素值的出现。我想把它

我有一个物体像:

[    { "Project": 1;  "key":["a", "b", "c", "d"]},
     { "Project": 2;  "key":["b", "c", "d"]},
     { "Project": 3;  "key":["e", "c", "a"]},
     { "Project": 4;  "key":["b", "a", "e", "f"]}        
 ]
就我所实现的而言,reduceCount只统计单个元素值的出现。我想把它变成什么东西

key     value
a        3
b        3
c        3
d        2
e        2
f        1
我想计算它出现在单个项目中的次数,比如“a”出现在3个项目中。实际上,我想在我的wordcloud中使用这些数据

我可以在交叉过滤器外完成这项工作,但不确定如何通过交叉过滤器实现这一点

任何援助都是可观的


Ethan Jewett提及的溶液


如果要在当前版本的Crossfilter中执行此操作,需要使用groupAll。这个问题的答案提供了一个例子:

或者,您也可以使用ReduceTio库,它提供了一种非常轻松地为复杂组生成reduce函数的方法,在本例中,它以与dc.js兼容的方式包装groupAll。文件的相关章节如下:


如果你特别喜欢冒险,你可以尝试使用交叉过滤器叉的主分支。我们最近在
维度调用中添加了一个新参数,该参数将使它完全按照您描述的方式处理您的数据。文档位于此处:

感谢您的建议。我只是想知道,如果我必须得到每一个计数相关的项目。如示例所示:“a”有计数“3”,并表示“1,3,4”。我尝试在多个变量上创建维度,但它仍然没有提供项目名称。您应该在组键(例如“a”)上保留项目列表以及计数。这里棘手的部分是,您需要准确地跟踪每个项目当前在组中的数量,以及在添加或删除记录时计算的增量/减量。