如何通过ID有效地从crossfilter中删除/修改数据

时间:2015-03-05 13:21:38

标签: javascript crossfilter

从交叉过滤器中删除数据点时,我遇到了性能问题。每次我必须做以下事情:

    dimension.filter(tmpReportId);
    var tmpReport = dimension.top(1)[0]; //Because after removal I have to modify the "report" (the data point) and add it back to the crossfilter
    reportsVis.getCrossfilter().remove();
    dimension.filter(null);

问题是,filter()在整个crossfilter上应用了两次,这使得大型数据集上的操作非常昂贵

1 个答案:

答案 0 :(得分:0)

filter(null)不是一项昂贵的操作,因为它只清除过滤器,它不会执行过滤器。 source probably makes things clear

function crossfilter_filterAll(values) {
  return [0, values.length];
}

filter(null)filterAll()是相同的操作,如您所见,它只返回维度中的每个值。