我有一个像这样的数据对象数组:
{
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;
});
我想按专业过滤。我查看了this question,但这只是给了我一个结构,其中包含整个数据集的每个专业的计数。
理想情况下,我希望根据距离过滤器显示匹配的专业,并使用专业来进一步过滤结果。
考虑到我的物体结构,这可能吗?是否有一些更简单的方法来表示可以更好地过滤的数据?
答案 0 :(得分:3)
Support for custom filter functions。你现在应该能够做到:
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;
});
并在那些上运行过滤器(但这只支持AND条件)。