在crossfilter中过滤多个离散值

Lar*_*ngl 7 javascript d3.js crossfilter

有没有人有过在多个值上过滤crossfilter对象维度的方法?就像是

.filterExact(["cash","visa"])
Run Code Online (Sandbox Code Playgroud)

要么

.filter(["cash","visa"])
Run Code Online (Sandbox Code Playgroud)

......但不是它的范围形式......

要么

.filterAll(["cash","visa"])
Run Code Online (Sandbox Code Playgroud)

......但没有清理部分.

或者不使用的等效变通方法/方法

.filterRange(["cash","visa"])
Run Code Online (Sandbox Code Playgroud)

??

或者我错过了API中的某些内容?

谢谢!

拉里

prt*_*xna 13

我遇到了类似的问题.我解决它的方式是我编写了一个过滤函数,用于检查维度是否位于特定数组中.

// 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;
});
Run Code Online (Sandbox Code Playgroud)

这将检查值是否位于该数组中并相应地过滤.

希望这可以帮助.


小智 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))
Run Code Online (Sandbox Code Playgroud)