我知道这可能是一个非常愚蠢的问题,但是 我想让这段代码工作:
但是在这个过滤器中,我不能使用匿名函数,因为没有定义d。解决这个问题的最佳方法是什么?
ps:我知道我可以通过使用filterExact(" File")解决这个问题,但我真的想使用filterFunction,所以我可以过滤掉多种类型。
d3.json("data.json", function(data) {
cf = crossfilter(data);
byType = cf.dimension(function(d) { return d.type; });
d3.selectAll(".myCheckbox").on("change",filter);
filter_test();
function filter_test() {
byType.filterFunction(function (d) {
return (d.type == "File");
});
tabulate(byType.top(15));
}
}
答案 0 :(得分:1)
使用维度的值调用传递给filterFunction
的函数,即在创建维度时作为参数传递的函数返回的值。
传递给d
的函数中访问的filterFunction
因此已经是您期望的type
值。 return (d == "File")
应该做到这一点。
答案 1 :(得分:0)
尝试:return(d.type ===" File");
否则我相信你只是比较字符串"文件"。