【问题标题】:Crossfilter: Bypass filters on other dimensionsCrossfilter:绕过其他维度的过滤器
【发布时间】:2014-11-19 10:09:44
【问题描述】:

我在交叉过滤器中使用多个维度(例如维度日期、类别、状态)。这一切都按预期工作,但我还想要一个 id-Dimension 来快速检索单个数据对象。

问题是:

如果我过滤 idDimension.filter(myId),同时应用其他过滤器(过滤掉 id=myId 的对象),crossfilter 将找不到给定的数据对象。 (之后我重置了 idDimension.filter(null))。

有没有办法绕过所有其他过滤器进行单个交叉过滤器查询?或者应该有一种方法可以保存和恢复当前的过滤器。

【问题讨论】:

    标签: crossfilter


    【解决方案1】:

    对唯一值维度进行过滤以检索单个记录在 Crossfilter 中确实效率低下。这样做是从所有组中删除除单个记录之外的所有记录,然后在删除过滤器时将它们全部添加回来。这意味着您的组聚合加法和减法函数将在每条记录上运行两次,实际上完全没有理由。

    这取决于您的确切需求,但我认为更好的选择是将所有记录的数组保留在 Crossfilter 之外,按 ID 属性排序,并使用 crossfilter.bisect 查找记录,或创建所有以唯一 ID 为键的记录(如果您的浏览器支持,请使用 ES6 Map,或使用 d3.map 等替代实现)并使用 Map.prototype.get() 查找记录。换句话说,不要使用 Crossfilter 来

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多