有没有人有办法在多个值上过滤crossfilter对象维度?像
这样的东西.filterExact(["cash","visa"])
或
.filter(["cash","visa"])
...但不是它的范围形式......
或
.filterAll(["cash","visa"])
......但没有清算部分。
或不使用
的等效变通方法/方法.filterRange(["cash","visa"])
...
或者我错过了API中的内容?
谢谢!
拉里
答案 0 :(得分:12)
我遇到了类似的问题。我解决它的方式是我编写了一个过滤函数,用于检查维度是否位于特定数组中。
// Array of things you want to filter
var f = ["cash", "visa"];
// Assuming "dim" is our dimension
dim.filter(function(d){
return f.indexOf(d) > -1;
});
这将检查值是否位于该数组中并相应地过滤。
希望这有帮助。
答案 1 :(得分:2)
以下拉取请求看起来会满足您的需求,但尚未合并。
Multiple arguments to filter result in union of filter operations
合并后,您可以执行以下操作。
data.total.filter("cash", "visa");
这会导致所有过滤条件的结合。
答案 2 :(得分:1)
API中似乎没有任何内容,但如果您想避免使用filterRange,您可以使用两个基本过滤器并结束结果:
var paymentsByType = payments.dimension(function(d) { return d.type; }),
cashAndVisaPayments = Array.prototype.concat(paymentsByType.filter('cash').top(Infinity),paymentsByType.filter('visa').top(Infinity))