Javascript 交叉过滤器在阵列属性上的过滤和显示

Javascript 交叉过滤器在阵列属性上的过滤和显示,javascript,crossfilter,Javascript,Crossfilter,我有一组数据对象,如下所示: { index: "M1", first: "First", last: "Last", distance: 5, specialties: ["Pediatrics", "Internal"], languages: ["English", "French"] } 除按距离过滤外: var cf = crossfilter(physicians); var byDistance = cf.dimension(function (d) {

我有一组数据对象,如下所示:

{
  index: "M1",
  first: "First",
  last: "Last",
  distance: 5,
  specialties: ["Pediatrics", "Internal"],
  languages: ["English", "French"]
}
除按距离过滤外:

var cf = crossfilter(physicians);
var byDistance = cf.dimension(function (d) {
    return d.distance;
});
我想按专业过滤。我已经看过了,但这只是给了我一个结构,其中包含整个数据集的每个专业的计数

理想情况下,我希望基于距离过滤器显示匹配的专业,并使用专业进一步过滤结果

考虑到我的对象的结构,这可能吗?是否有更简单的方法来表示数据,以便更好地进行过滤

谢谢。这里有小提琴:

已添加到crossfilter-1.2.0中。您现在应该能够执行以下操作:

var specialties = cf.dimension(function(d) {
    return d.specialties;
});

specialties.filterFunction(function(d) {
    return d.indexOf("specialty") >= 0;
});
或者,您可以为每个可能的专业制作尺寸标注:

var pediatrics = cf.dimension(function(d) {
    return d.specialties.indexOf("pediatrics") >= 0;
});

var internal = cf.dimension(function(d) {
    return d.specialties.indexOf("internal") >= 0;
});

并在这些上运行过滤器(但这仅支持和条件)。

感谢您的回复。我太忙了,没时间尝试这个,但我会在周末尽我最大的努力来测试它。