Javascript 交叉滤波器中多个离散值的滤波器

Javascript 交叉滤波器中多个离散值的滤波器,javascript,d3.js,crossfilter,Javascript,D3.js,Crossfilter,是否有人有办法根据多个值过滤对象维度?差不多 .filterExact(["cash","visa"]) 或 …但不是它的范围形式 或 …但没有清理部分 或不使用 .filterRange(["cash","visa"]) ? 还是我在API中遗漏了什么 谢谢 拉里API中似乎没有任何内容,但如果您想避免过滤错误,可以使用两个基本的过滤器并将结果浓缩: var paymentsByType = payments.dimension(function(d) { return d.type; }

是否有人有办法根据多个值过滤对象维度?差不多

.filterExact(["cash","visa"])

…但不是它的范围形式

…但没有清理部分

或不使用

.filterRange(["cash","visa"])
?

还是我在API中遗漏了什么

谢谢


拉里

API中似乎没有任何内容,但如果您想避免过滤错误,可以使用两个基本的过滤器并将结果浓缩:

var paymentsByType = payments.dimension(function(d) { return d.type; }),
cashAndVisaPayments = Array.prototype.concat(paymentsByType.filter('cash').top(Infinity),paymentsByType.filter('visa').top(Infinity))

下面的pull请求看起来可以满足您的需求,但尚未合并到中

一旦合并,您将能够执行以下操作

data.total.filter("cash", "visa");

这将导致所有筛选条件的联合。

我也面临类似的问题。我解决这个问题的方法是编写一个过滤函数来检查维度是否位于特定数组中

//要筛选的内容的数组
var f=[“现金”、“visa”];
//假设“昏暗”是我们的维度
尺寸过滤器(功能(d){
返回f.indexOf(d)>-1;
});
这将检查该值是否位于该数组中,并相应地进行筛选


希望这能有所帮助。

谢谢,这将得到合并的元素,但不幸的是,它不能提供必要的多重过滤维度,在我的例子中,多重视图引用了多重过滤维度。仍然可能需要采取解决方法。干杯。是的,早些时候D3队长本人(姆博斯托克)也投了同样的球。希望这个功能很快就会登陆。谢谢伟大的解决方案。-@pr伟大的解决方案!
var paymentsByType = payments.dimension(function(d) { return d.type; }),
cashAndVisaPayments = Array.prototype.concat(paymentsByType.filter('cash').top(Infinity),paymentsByType.filter('visa').top(Infinity))
data.total.filter("cash", "visa");