dc.js:处理具有多值属性的条目

dc.js:处理具有多值属性的条目,dc.js,crossfilter,Dc.js,Crossfilter,我处理的数据包含多值属性(例如:一家公司的分支机构分布在三个州)。 当点击具有多个分支机构的公司时,地质剖面图应突出显示所有相关州。 但是,这目前仅适用于具有单个值(一个状态)的条目。 如何实现上述功能 var data= [ {"Company":"MountainA","State":"CA PA NY"}, {"Company":"HighlandA","State":"PA"}]; 我修改了2011年美国风险投资概况的csv数据,并为大多数条目添加了多个州。 例如:现在

我处理的数据包含多值属性(例如:一家公司的分支机构分布在三个州)。 当点击具有多个分支机构的公司时,地质剖面图应突出显示所有相关州。 但是,这目前仅适用于具有单个值(一个状态)的条目。 如何实现上述功能

var data= [
    {"Company":"MountainA","State":"CA PA NY"},
    {"Company":"HighlandA","State":"PA"}];
我修改了2011年美国风险投资概况的csv数据,并为大多数条目添加了多个州。 例如:现在状态信息不再是单一状态(“CA”),而是包括多个状态,例如“CA PA NY”(空格分隔)。

我想需要修改这个函数

var states = data.dimension(function (d) {
    return d["State"];
  });
非常感谢您的帮助。

在npm中作为crossfilter2提供,在1.4版支持数组(标记)键中有一个新功能:

这将导致这些行对dimension key函数返回的每个键计数一次


交叉筛选文档-。

非常感谢您,戈登!你总是很乐于助人!现在可以了。我还意识到有两种回购协议:后一种是我需要的(crossfilter1.4),在npm中称为crossfilter2。这是一个很好的观点,我编辑了我的答案,提到了fork。很高兴它对你有用。披露:我是这个fork的维护者,但我没有开发这个特性。谢谢。我还有一个问题:如何才能最好地在javascript中获取单击的项目?(我尝试了一种非常老套的方法…(对于当前的过滤器:CA,PA,one-get-var-selected_-items=['CA','PA'];)?不,你不应该这样做,那是为了改变过滤器的工作方式(不过我想没有什么坏处)。如果在筛选器更改时查找回调,请使用
.on('filtered',…)
。如果您只想阅读过滤器,请参见我上面链接的
chart.filters()
var states = data.dimension(function (d) {
    return d["State"].split(' ');
  }, true // enable array keys
);