javascript - 使用 Crossfilter,是否可以在分组时跟踪最大/最小值?

标签 javascript crossfilter

使用 Crossfilter (https://github.com/square/crossfilter) 时,我指定了在组中添加和删除数据时要使用的函数。跟踪运行平均值(使用 CoffeeScript)相当简单:

reduceAdd = (p, v) ->
  ++p.count;
  p.sum += v.digit;
  p

reduceRemove = (p, v) ->
  --p.count;
  p.sum -= v.digit;
  p

reduceInitial = ->
  {
    count: 0
    sum: 0
    average: ->
      return 0 if this.count == 0
      return this.sum / this.count
  }

是否可以跟踪每组的最大值和最小值?我想不出除了将所有元素保存在一个巨大的数组中并执行 d3.min/d3.max 之外的方法。添加/删除数据似乎效率极低。

我还寻找一种方法来告诉 Crossfilter 从头开始​​完全重建组,而不是从现有组中删除项目。如果应用了筛选器,则会重置并重建该组。没有什么明显的。

最佳答案

您可以使用 dimension.top(1)dimension.bottom(1)检索当前的最小值和最大值。这些方法尊重交叉过滤器上可能处于事件状态的任何过滤器。

关于javascript - 使用 Crossfilter,是否可以在分组时跟踪最大/最小值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10509478/

相关文章:

javascript - $watch on 指令,其嵌套对象的隔离范围作为 crossfilter 的属性

javascript - 使用 crossfilter,是否可以在实例化后销毁/删除它?

javascript - 找不到 JQuery 函数

javascript - 谷歌图表不适用于 Wkhtmltopdf

javascript - onClick 的 jQuery 动画不适用于连续点击

javascript - 在上传循环期间获取字节位置

JavaScript 中的 JavaScript 解析器

javascript - 如何使用DC、D3和Crossfilter过滤数据以生成条形图?

javascript - 尝试呈现数据 d3 crossfilter dc.js BarChart。图表已绘制,但它是空的

d3.js - 如何使 dc.js 中的图形可在固定尺寸 div 内滚动?